当前位置: 首页 > news >正文

竞价托管代运营公司济南seo优化公司助力网站腾飞

竞价托管代运营公司,济南seo优化公司助力网站腾飞,dede 后台 不能保存网站名称,wordpress远程执行设计LRU缓存结构_牛客题霸_牛客网 描述 设计LRU(最近最少使用)缓存结构#xff0c;该结构在构造时确定大小#xff0c;假设大小为 k #xff0c;并有如下两个功能 1. set(key, value)#xff1a;将记录(key, value)插入该结构 2. get(key)#xff1a;返回key对应的val…设计LRU缓存结构_牛客题霸_牛客网 描述 设计LRU(最近最少使用)缓存结构该结构在构造时确定大小假设大小为 k 并有如下两个功能 1. set(key, value)将记录(key, value)插入该结构 2. get(key)返回key对应的value值 提示: 1.某个key的set或get操作一旦发生认为这个key的记录成了最常使用的然后都会刷新缓存。 2.当缓存的大小超过k时移除最不经常使用的记录。 3.输入一个二维数组与k二维数组每一维有2个或者3个数字第1个数字为opt第23个数字为keyvalue 若opt1接下来两个整数key, value表示set(key, value) 若opt2接下来一个整数key表示get(key)若key未出现过或已被移除则返回-1 对于每个opt2输出一个答案 4.为了方便区分缓存里key与value下面说明的缓存里key用号包裹 要求set和get操作复杂度均为 O(1) 示例1 输入 [[1,1,1],[1,2,2],[1,3,2],[2,1],[1,4,4],[2,2]],3 复制返回值 [1,-1] 复制说明 [1,1,1]第一个1表示opt1要set(1,1)即将(1,1)插入缓存缓存是{11} [1,2,2]第一个1表示opt1要set(2,2)即将(2,2)插入缓存缓存是{11,22} [1,3,2]第一个1表示opt1要set(3,2)即将(3,2)插入缓存缓存是{11,22,32} [2,1]第一个2表示opt2要get(1)返回是[1]因为get(1)操作缓存更新缓存是{22,32,11} [1,4,4]第一个1表示opt1要set(4,4)即将(4,4)插入缓存但是缓存已经达到最大容量3移除最不经常使用的{22}插入{44}缓存是{32,11,44} [2,2]第一个2表示opt2要get(2)查找不到返回是[1,-1] 示例2 输入 [[1,1,1],[1,2,2],[2,1],[1,3,3],[2,2],[1,4,4],[2,1],[2,3],[2,4]],2 复制返回值 [1,-1,-1,3,4]复制 备注 1≤K≤N≤105 −2×109≤x,y≤2×109 解题报告 首先设计数据结构使用hash表链表实现。 首先用链表来实现页面缓存。用hash表来快速定位每个key对应的value是什么。方便进行get操作。 AC代码 优化后较为简单的代码 即我们调用层代码十分清晰。具体实现层实现了链表层面的insert和remove顺便更新下key就可以了。 注意点1remove函数里面的k_pos.erase操作要放到if内不然已经return了就不会执行erase了。 class Solution { public:/*** lru design* param operators int整型vectorvector the ops* param k int整型 the k* return int整型vector*/struct Node {int key, val;Node* pre, *nxt;Node(int k, int v):key(k), val(v){}};int K;unordered_mapint, Node* k_pos;Node* head, *tail;void insert(int key, int value) {Node* newNode new Node(key, value);newNode-nxt head-nxt;newNode-pre head;head-nxt-pre newNode;head-nxt newNode;k_pos[key] newNode;}bool remove(int key) {if(k_pos.find(key) ! k_pos.end()) {Node* tar k_pos[key];tar-pre-nxt tar-nxt;tar-nxt-pre tar-pre;delete tar;k_pos.erase(key);return true;}return false;}void set(int key, int value) {remove(key);if(k_pos.size() K) {remove(tail-pre-key);}insert(key, value);}int get(int key) {if(k_pos.find(key) ! k_pos.end()) {int ret k_pos[key]-val;remove(key);insert(key, ret);return ret;}return -1;}vectorint LRU(vectorvectorint operators, int k) {// write code hereK k;head new Node(-1, -1);tail new Node(-1, -1);head-nxt tail;tail-pre head;vectorint ans;for(int i 0; ioperators.size(); i) {if(operators[i][0] 1) {set(operators[i][1], operators[i][2]);} else {ans.push_back(get(operators[i][1]));}}return ans;} }; 重构前较为复杂的代码 class Solution { public:/*** lru design* param operators int整型vectorvector the ops* param k int整型 the k* return int整型vector*/struct Node {int key, val;Node* pre, *nxt;Node(int k, int v):key(k), val(v){}};int K;unordered_mapint, Node* k_pos;Node* head, *tail;bool remove(int key) {if(k_pos.find(key) ! k_pos.end()) {Node* tar k_pos[key];tar-pre-nxt tar-nxt;tar-nxt-pre tar-pre;delete tar;k_pos.erase(key);return true;}return false;}void set(int key, int value) {remove(key);if(k_pos.size() K) {remove(tail-pre-key);}Node* newNode new Node(key, value);newNode-nxt head-nxt;newNode-pre head;head-nxt-pre newNode;head-nxt newNode;k_pos[key] newNode;}int get(int key) {if(k_pos.find(key) ! k_pos.end()) {int ret k_pos[key]-val;remove(key);Node* newNode new Node(key, ret);newNode-nxt head-nxt;newNode-pre head;head-nxt-pre newNode;head-nxt newNode;k_pos[key] newNode;return ret;}return -1;}vectorint LRU(vectorvectorint operators, int k) {// write code hereK k;head new Node(-1, -1);tail new Node(-1, -1);head-nxt tail;tail-pre head;vectorint ans;for(int i 0; ioperators.size(); i) {if(operators[i][0] 1) {set(operators[i][1], operators[i][2]);} else {ans.push_back(get(operators[i][1]));}}return ans;} };
http://www.huolong8.cn/news/81878/

相关文章:

  • 北京微网站设计制作服务怎么查网站备案信息
  • 泰安网站建设收益教做黏土手工的网站
  • 曾经做网站网站代理唐山哪里建设飞机场
  • 珠海主题网站设计模板中国企业排行
  • 免费的舆情网站做任务免费领取东西的网站
  • 网站增加二级域名直播软件app平台大全
  • 建设银行龙卡信用卡官方网站vi视觉识别系统设计
  • 深圳市住房建设部官方网站广州红盾信息门户网站
  • 做美食分享网站源码企业咨询服务合同模板免费
  • 手机网站范例西安搬家公司价目表
  • 网站gzip压缩怎样给网站做关键词优化
  • 一个网站多个域名免费公司logo设计
  • 网站开发string文件谷歌推广开户
  • 外卖网站的建设与推广人才招聘网最新招聘
  • 做网站必须要文网文吗廊坊网站建设服务
  • 用vs2010做网站登录seo网站关键词优化机构
  • 搜狗竞价绑定网站要求wordpress 禁用google
  • 郑州网站建设技术精粹国外 配色网站
  • 网站软文怎么写鹤壁做网站公司电话
  • 如何在交易网站做电子印章电商网站开发进度表
  • 长春网站建设方案优化交做网贷的网站
  • 东莞教育平台网站建设为什么要用h5建站
  • 淘宝客网站模板怎么在阿里云建网站
  • 企业做网站 乐云seo华夏人寿保险公司官网
  • 企业自己怎么制作网站首页手机移动端网站怎么做
  • 印刷建设网站个人网页免费域名注册入口
  • 我要外包网站想做个卷帘门百度优化网站
  • 美容加盟的网站建设江苏seo培训
  • 利用wordpress建站天津网站设计公司
  • 上海好牛网站建设网站模板去哪要