力扣hot100—LinkedHashMap实现LRU缓存
可以用LinkedHashMap的数据结构实现;要自己手写的话,就需要维护一个哈希+双向链表的数据结构,使用双链表来维护缓存项的访问顺序。最近访问的项位于链表的头部,而最久未访问的项位于链表的尾部。 Map<Integer,MyNodes>,底层就是数组+双向链表。put操作,找出来修改值,放到最前面,找不到就新增,节点放最前面get操作就把…
|
|
力扣hot100—哈希 3题
两数之和、字母异位词分组、最长连续序列。
难度:3medium
|
|
剑指offer67题-No54.字符流中第一个不重复的字符
字符串处理 哈希表。 #include <unordered_map> class Solution { public: //Insert one char from stringstream string s; unordered_map<char, int> mp; void Insert(char ch) { s += ch; m…
|
|
剑指offer67题-No50.数组中重复的数字
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 法1:哈希表,时间复杂度On,空间复杂度On bool duplicate(int numbers[], int length, int* duplication…
|
|
剑指offer67题-No34.第一个只出现一次的字符
哈希表记录出现次数即可。 int FirstNotRepeatingChar(string str) { if(str.size() == 0) return -1; std::unordered_map<char, int> mp; // 存字符出现的次数 for(int i = 0; i < str.size(); i++){ //…
|
|