题目链接:. - 力扣(LeetCode)
有效的字母异位词是依赖映射的第一题,这个题目巧妙的利用第一个字符串各个字母的统计再减去第二个字符串各个字母的统计,由于本题的解释主要使用数组,数组也是哈希表的一种,写作比较简单,代码如下:
共有三种方法,第一种和第二种的思路一样。
题目链接:. - 力扣(LeetCode)
两个数组的交集这道题目由于不需要考虑交集数字重复的情况,使用set简单很懂,限免列出来四种方法,其中第四种是第一种解法的简化版,第一种方法将数组1对应的每一个数字的出现次数都统计了出来,但是在该题中其实并不需要,因此我在第四种方法中直接用set进行了省略。此外,本题也可以用上一道题的数组方法比较,如这里的解法3。这里需要解释的是其中的
这是由于如果其中任意有关数组不存在某个数,即交集为0,则此时两数组的该数相乘为0,因此可以统计交集。
题目链接:. - 力扣(LeetCode)
快乐数这道题有两个点,一是把这个整数按位平方求和,这里主要有两个写法,一个是用divmod函数或者以除10取余的方法一个一个取数,另一种是将int型转换为str型再遍历,个人觉得第二种方法更简单一点,另外一点是判断,主要的方法是用set记录,哈希的作用是判断一个数是不是存在,因此这里用了record来记录,如果存在在record里就返回False,否则先加入record里,直到数的平方和为1,因此这里很适合用while。
题目链接:. - 力扣(LeetCode)
两数之和题目首先想到的可能是暴力法,如方法一,但主要是考虑映射关系,因为要返回数组的索引下标,因此一定要用合适的方法将下标与数字对应起来,一是可以用字典,另外就是用enumerate,这个题目巧妙的用target剑法可以很容易的找到另一个数。