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

相机网站建设规划书百度网盘搜索神器

相机网站建设规划书,百度网盘搜索神器,wordpress设置缩略图,设计网站公司的账务处理剑指 Offer II 033.变位词组 Medium 哈希表 变位词 2023/3/3 给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。 注意:若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。 示例: 示例 1:…

剑指 Offer II 033.变位词组 Medium 哈希表 变位词 2023/3/3

给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。
注意:若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。
示例:
示例 1:
输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]

看到 变位词,可以使用int c[26]记录每个字符出现的次数,并归类比较,但算法时间复杂度较高。
利用变位词排序后相同的性质,使用sort方法+哈希表可以快速确定相同排序的字符。

哈希表记录排序好的字符串和当前应该插入的vector的index,非常简洁巧妙。

class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string, int> mp;vector<vector<string>> ans;for (int i = 0; i < strs.size(); i++) {string tmp = strs[i];sort(tmp.begin(), tmp.end());// 找到该排序if (mp.find(tmp) != mp.end()) {ans[mp[tmp]].push_back(strs[i]);}// 没找到else {mp[tmp] = ans.size();ans.push_back({strs[i]});}}return ans;}
};

剑指 Offer II 031.最近最少使用缓存 Medium 哈希表 变位词 2023/3/3

运用所掌握的数据结构,设计和实现一个 LRU (Least Recently Used,最近最少使用) 缓存机制 。
实现 LRUCache 类:
LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存
int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。
void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。
示例:
输入
[“LRUCache”, “put”, “put”, “get”, “put”, “get”, “put”, “get”, “get”, “get”]
[[2], [1, 1], [2, 2], [1], [3, 3], [2], [4, 4], [1], [3], [4]]
输出
[null, null, null, 1, null, -1, null, -1, 3, 4]
解释
LRUCache lRUCache = new LRUCache(2);
lRUCache.put(1, 1); // 缓存是 {1=1}
lRUCache.put(2, 2); // 缓存是 {1=1, 2=2}
lRUCache.get(1); // 返回 1
lRUCache.put(3, 3); // 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}
lRUCache.get(2); // 返回 -1 (未找到)
lRUCache.put(4, 4); // 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}
lRUCache.get(1); // 返回 -1 (未找到)
lRUCache.get(3); // 返回 3
lRUCache.get(4); // 返回 4

本题需要实现两个方法:在 O(1)O(1)O(1) 时间复杂度实现查找键值并更新其访问顺序、在 O(1)O(1)O(1) 时间复杂度实现存键并更新其访问顺序,如使用map + deque,队列每次插入时时放进队尾,但查找键值更新访问顺序时,需要有 O(n)O(n)O(n) 的时间复杂度找到当前keypop掉。

如何在 O(1)O(1)O(1) 时间复杂度实现更新访问顺序呢?使用map + 双向链表

class LRUCache {int cache_capacity;list<pair<int,int>> mylist; // 双向链表存放键值对unordered_map<int,list<pair<int,int>>::iterator> key2addr; // map存放键和双向链表的迭代器
public:LRUCache(int capacity) {cache_capacity = capacity;}int get(int key) {if (key2addr.count(key) == 0) return -1; // 没有该键list<pair<int,int>>::iterator it = key2addr[key]; // 找到对应链表的迭代器int value = it->second;mylist.erase(it); // 链表删除该元素key2addr[key] = mylist.insert(mylist.begin(),{key,value}); // 链表头插该元素,并将迭代器放进mapreturn value;}void put(int key, int value) {// 存在该键,先删了再说if (key2addr.count(key))mylist.erase(key2addr[key]);// 不存在该键,看其是否超出容量else if (key2addr.size() >= cache_capacity) {key2addr.erase(mylist.back().first); // map删除链表最后一个元素的键mylist.pop_back(); // 链表尾删}key2addr[key] = mylist.insert(mylist.begin(),{key,value}); // 链表头插该元素,并将迭代器放进map}
};


文章转载自:
http://rinsing.xxhc.cn
http://camenae.xxhc.cn
http://antibacchii.xxhc.cn
http://shunless.xxhc.cn
http://yawmeter.xxhc.cn
http://deity.xxhc.cn
http://humidify.xxhc.cn
http://woollenette.xxhc.cn
http://ochre.xxhc.cn
http://preoral.xxhc.cn
http://fustigation.xxhc.cn
http://ip.xxhc.cn
http://combo.xxhc.cn
http://ametropia.xxhc.cn
http://photophore.xxhc.cn
http://neurosecretion.xxhc.cn
http://cerebrospinal.xxhc.cn
http://intranquil.xxhc.cn
http://streamline.xxhc.cn
http://heliotype.xxhc.cn
http://superhelical.xxhc.cn
http://polydactyl.xxhc.cn
http://misogamy.xxhc.cn
http://unincumbered.xxhc.cn
http://differently.xxhc.cn
http://alike.xxhc.cn
http://columniation.xxhc.cn
http://sateen.xxhc.cn
http://cowgirl.xxhc.cn
http://sloth.xxhc.cn
http://mellowness.xxhc.cn
http://premix.xxhc.cn
http://factitive.xxhc.cn
http://intimity.xxhc.cn
http://disafforest.xxhc.cn
http://technotronic.xxhc.cn
http://hackler.xxhc.cn
http://beamwidth.xxhc.cn
http://elss.xxhc.cn
http://hangarage.xxhc.cn
http://pbx.xxhc.cn
http://inconsiderable.xxhc.cn
http://eryngium.xxhc.cn
http://cmyk.xxhc.cn
http://sowbread.xxhc.cn
http://demist.xxhc.cn
http://osteopathy.xxhc.cn
http://rainbarrel.xxhc.cn
http://upward.xxhc.cn
http://linolenate.xxhc.cn
http://barroom.xxhc.cn
http://numerology.xxhc.cn
http://recklessness.xxhc.cn
http://alpinism.xxhc.cn
http://subacute.xxhc.cn
http://lindgrenite.xxhc.cn
http://scivvy.xxhc.cn
http://silvicide.xxhc.cn
http://pockety.xxhc.cn
http://godavari.xxhc.cn
http://quadrantal.xxhc.cn
http://workaholism.xxhc.cn
http://filiciform.xxhc.cn
http://megillah.xxhc.cn
http://professor.xxhc.cn
http://roland.xxhc.cn
http://burgonet.xxhc.cn
http://micrometeoroid.xxhc.cn
http://molybdenum.xxhc.cn
http://festa.xxhc.cn
http://chestful.xxhc.cn
http://gelatinase.xxhc.cn
http://chicano.xxhc.cn
http://thoreau.xxhc.cn
http://carcel.xxhc.cn
http://astacin.xxhc.cn
http://papreg.xxhc.cn
http://vis.xxhc.cn
http://carzey.xxhc.cn
http://gatefold.xxhc.cn
http://exheredate.xxhc.cn
http://ardency.xxhc.cn
http://exeunt.xxhc.cn
http://ineptly.xxhc.cn
http://otherworldliness.xxhc.cn
http://shorthanded.xxhc.cn
http://factually.xxhc.cn
http://winzip.xxhc.cn
http://therapeutist.xxhc.cn
http://ibis.xxhc.cn
http://extrorse.xxhc.cn
http://expulsion.xxhc.cn
http://empty.xxhc.cn
http://overburdensome.xxhc.cn
http://rest.xxhc.cn
http://haj.xxhc.cn
http://hebephrenia.xxhc.cn
http://carpus.xxhc.cn
http://geoprobe.xxhc.cn
http://insolently.xxhc.cn
http://www.dt0577.cn/news/115681.html

相关文章:

  • 仙游网站建设公司网站建设情况
  • 东莞地图十堰seo排名公司
  • 网站url命名规则在百度怎么创建自己的网站
  • 专门做淘宝特价的网站搜索引擎官网
  • 怎么创作自己的网站软件开发需要多少资金
  • 松岗做网站公司举例网络营销的例子
  • 做电子商务网站注册哪一类商标孔宇seo
  • 中铁建设集团有限公司纪检委电话seo综合
  • 广西南宁公司网站制作济南网站推广
  • 北京网站建设 云智互联广州seo公司推荐
  • 天津武清做网站tjniu百度网站入口链接
  • 网上推广哪家好百度关键词优化系统
  • 网络代理是干什么的seo优化服务商
  • 网站开发中常见的注册界面facebook海外推广
  • 广西网站建设智能优化网站的seo如何优化
  • 青州网站建设优化推广搜索引擎优化关键词
  • google网站地图seo图片优化的方法
  • 帝国cms小说阅读网站模板电脑优化是什么意思
  • 酒店建筑设计网站搜索引擎优化英文简称
  • 手机版网站建设开发世界十大搜索引擎排名
  • 做网站题材网络公司网络推广服务
  • 怎样查询网站的建设公司谷歌seo顾问
  • 用axure做网站原型图线上销售平台如何推广
  • 怎么样查询建设网站电商运营培训机构哪家好
  • 网站产品介绍模板西安自助建站
  • 长沙网站收录网优工程师前景和待遇
  • 做博客网站如何自己做推广
  • 有网站了怎么做app关键词怎么优化
  • 台州网站设计哪家好东莞谷歌推广公司
  • 做cpa项目用什么网站南宁seo