数据结构-哈希表set
数据结构-哈希表set
tzyshiwolaogongya
这个作者很懒,什么都没留下…
展开
-
leetcode128——Longest Consecutive Sequence
题目大意:求未排序数组中的最长连续序列的长度,要求时间复杂度为O(n)。例如[100,4,200,1,3,2],len=4。 分析:哈希表unordered_set。 原题=>遍历数组时需要判断某个数(大一或小一)是否存在=>用哈希表(查询O(1))。 num依次插入set,遍历set,对每个num都尝试匹配num+1,num+2...是否存在。最坏还是O(n²)。 所以加上“跳过逻辑”:存在num-1时跳过,也就是只有num为连续序列的第一个数的时候,才开始内层循环匹配。达到了O(n)原创 2020-07-03 15:21:59 · 126 阅读 · 0 评论 -
leetcode720——Longest Word in Dictionary
题目大意:给出字典中的一些字符串,找出他们中的最长单词,使得这个单词由字典中的字符串逐字母生成,如果长度相同取字典序较小的一个。 分析:trie应用。或者用集合set来做。 方法一集合:字符串sort排序后是按长度由小到大,字典序由小到大排列的。取出words中的一个字符串,如果它长度为1或者取出它的长度减一的子串在built集合中,就更新答案,并将当前取出的字符串放入bu...原创 2018-03-17 14:55:40 · 458 阅读 · 0 评论 -
leetcode500——Keyboard Row
题目大意:给出一些字符串,判断哪些字符串中的字符是由键盘上同一行字母组成的 分析:集合的应用。判断单词中的所有字母是否在多行出现过,如果多个flag都是true那就不符合要求 代码: python转载自https://leetcode-cn.com/problems/keyboard-row/solution/yi-xing-shi-yong-filterhan-shu-de-yi-xing...原创 2018-03-17 11:29:38 · 188 阅读 · 0 评论 -
leetcode771——Jewels and Stones
题目大意:给出两个字符串,第一个字符串的每个字母代表一种珠宝的类型,第二个字符串的每个字母代表一种石头,求这些石头中有多少个是珠宝。 分析:哈希表应用。将出现在第一个字符串中的珠宝储存在哈希表中,搜索第二个字符串看哈希值是否为true即可。 代码: class Solution { public: int numJewelsInStones(string J, string S) { ...原创 2018-03-17 10:51:03 · 178 阅读 · 0 评论 -
leetcode36——Valid Sudoku
题目大意:给出数独的一部分,判断目前给出的部分是否合法 分析:map的考察。简单考虑:循环判断每一行,循环判断每一列,循环判断每个小九宫格,这样很没必要。深入思考,利用3个map存储,一个二重循环即可。 这道题有个数学技巧,数独一共有九个小九宫格,每个小九宫格都有九个小方格,那么第i个九宫格的第j个小方格的坐标为[i/3*3+j/3][i%3*3+j%3]。 代码:转载自...原创 2018-04-15 22:13:47 · 132 阅读 · 0 评论