205. Isomorphic Strings:一个字符串中更换某些字符进行映射为另外一个字符串。利用hashmap保存一一映射关系。注意有时候映射可以利用数组实现。
1. Two Sum:找到序列中和为固定值的两个元素坐标。利用hashmap很方便。
217. Contains Duplicate:找到list中是否包含两个相同的元素。直接利用hashmap查询即可。
219. Contains Duplicate II:找到list中相同的元素,并且两个元素之间index差小于固定值k。
242. Valid Anagram:给定两个string,看其中一个是否为另外一个打乱后的值。使用hashmap很方便,但是更方便的是利用长度为26的数组。
447. Number of Boomerangs:求boomerangs的对数,两个点和第三个点距离相等算一对。还是要遍历,在每一次遍历中求取和当前点相等距离的点。
349. Intersection of Two Arrays:求两个数组交集,用hashset
350. Intersection of Two Arrays II:两个数组交集,可以存在重复元素。hashmap记录出现次数。
463. Island Perimeter:求陆地的边,找规律。
204. Count Primes**:统计质数的数量。很巧妙。hashmap不一定意味着要用hash table, 可以是一个数组,可以查找。索引有一定的含义这种。
202. Happy Number:迭代的数字平方和为1。如果不是happy number的话,会出现重复的平方和结果。所以利用set存放平方和结果。
438. Find All Anagrams in a String**:比较难
290. Word Pattern:这道题和205很像,只是把第二个字符串换成了一个字符串数组。hashmap中put返回值是value值。
136. Single Number:序列中各个元素出现两次except one。不适用extra memory解决。使用异或。
389. Find the Difference:两个字符串,其中一个由另外一个打乱后加了一个字母。找出加上去的字母。和136相似,使用异或。
347. Top K Frequent Elements:一个序列中元素出现次数最多的K个元素。这道题还是需要使用hashmap进行统计,考的实际上是排序问题。前K大,可以使用桶排序。
49. Group Anagrams:把anagrams分组。对于这种乱序的考虑排序。其实上面的438也可以排序,但是比较时间复杂度会变高。
36. Valid Sudoku**:
3. Longest Substring Without Repeating Characters:找出字符串中不包含重复字符的子串,为什么呢?******
451. Sort Characters By Frequency:根据单词中字母出现次数进行字母重新排序。即:出现次数最多的字母排在前面。注意,凡是和大小写字母相关的可以直接利用数组作为hash表,会方便和快很多。另外,使用桶排序,而不要使用普通的冒泡等排序。
299. Bulls and Cows:统计两个字符串中相同位置相同数字和不同位置相同数字。利用hashmap记录各个数字出现的次数。巧妙之处在于利用数组存储数字出现的次数,不要什么都想着要建立map。
274. H-Index:至少有几篇文章的引用量超过几。先统计再累加。技巧就是引用量超过文章数量的统统认为引用量为文章数量。
