哈希表
Saulty
这个作者很懒,什么都没留下…
展开
-
LeetCode 409. 最长回文串
LeetCode 409. 最长回文串题目题解代码题目题解用哈希表存放字母元素出现的次数,偶数直接放入,奇数取出一位作为中心代码class Solution {public: int longestPalindrome(string s) { unordered_map<char,int> haxi; int flag=0; for(int i=0;i<s.size();i++) haxi[s原创 2021-08-06 13:01:41 · 41 阅读 · 0 评论 -
LeetCode 706. 设计哈希映射
LeetCode 706. 设计哈希映射题目题解代码题目题解开放定址法,线性探测代码class MyHashMap {private: const static int N = 20011; vector<pair<int, int>> hashTable;public: /** Initialize your data structure here. */ MyHashMap() { hashTable = vect原创 2021-08-02 13:09:46 · 56 阅读 · 0 评论 -
LeetCode 653. 两数之和 IV - 输入 BST
LeetCode 653. 两数之和 IV - 输入 BST题目题解代码题目题解广度优先遍历+哈希表代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * Tr原创 2021-07-31 12:51:07 · 51 阅读 · 0 评论 -
LeetCode 141. 环形链表
LeetCode 141. 环形链表题目题解代码题目题解哈希表visited.insert(head);快慢指针:快指针先行有环必定重合注意,无环判断,否则出错关于 链表 的相关问题缺点:无法高效获取长度,无法根据偏移快速访问元素问题:获取倒数第k个元素,获取中间位置的元素,判断链表是否存在环,判断环的长度等和长度与位置有关的问题双指针解决删除节点考虑增加空节点链表考虑递归代码/** * Definition for singly-linked li原创 2021-07-24 12:00:37 · 127 阅读 · 0 评论 -
LeetCode 383. 赎金信
LeetCode 383. 赎金信题目题解代码题目题解题目意思是,ransomNote的字符是否都存在于magazine中代码// 时间复杂度: O(n)// 空间复杂度:O(1)class Solution {public: bool canConstruct(string ransomNote, string magazine) { int record[26] = {0}; for (int i = 0; i < magazine.l原创 2021-07-23 12:46:27 · 98 阅读 · 0 评论 -
LeetCode 242. 有效的字母异位词
LeetCode 242. 有效的字母异位词题目题解代码题目题解排序判等哈希表(数组)26代码class Solution {public: bool isAnagram(string s, string t) { // int l1=s.size(); // int l2=t.size(); // if(l1!=l2); // return false; sort(s.begin(),s.e原创 2021-07-23 12:46:00 · 38 阅读 · 0 评论 -
LeetCode 387. 字符串中的第一个唯一字符
LeetCode 387. 字符串中的第一个唯一字符题目题解代码题目题解和次数有关考虑哈希表哈希表键为存储频数代码class Solution {public: int firstUniqChar(string s) { int len=s.size(); unordered_map<char,int> haxi;//unordered_map<int,int> haxi; for(int i=0;i<原创 2021-07-23 12:45:27 · 41 阅读 · 0 评论 -
LeetCode 36. 有效的数独
LeetCode 36. 有效的数独题目题解代码题目题解遍历每一个元素每行创建一个哈希表每列创建一个哈希表每3*3的格子创建一个哈希表 int box_index = (i / 3 ) * 3 + j / 3;代码class Solution {public: bool isValidSudoku(vector<vector<char>>& board) { unordered_map<int,int> rows[9]原创 2021-07-22 12:33:22 · 46 阅读 · 0 评论 -
350. 两个数组的交集 II
LeetCode 350. 两个数组的交集 II题目题解代码题目题解哈希表短的数组先进哈希表,键为数组元素,值为数组元素出现的次数,长的数组,每找到一个,相应值减一哈希表考虑用for (int num : nums1) { ++m[num];}遍历数组更为方便数组长短对于算法的影响if (nums1.size() > nums2.size()) {return intersect(nums2, nums1);}排序+双指针代码// class Solution {/原创 2021-07-20 21:49:14 · 121 阅读 · 0 评论 -
LeetCode 1. 两数之和
LeetCode 1. 两数之和题目题解代码题目题解暴力枚举法哈希表哈希表的键为数组元素的值哈希表的值为元素下标代码// class Solution {// public:// vector<int> twoSum(vector<int>& nums, int target) {// int n=nums.size();// for(int i=0;i<n-1;i++){//原创 2021-07-18 10:48:53 · 45 阅读 · 0 评论