代码随想录刷题思路与心得05|242. 349. 202. 1.

242.有效的字母异位词

        这道题直观思路就是直接统计每个字母出现的数量,然后对比两个一不一样。像这种键值对应的直接用哈希会很方便。对于python,里面的Counter很好用,相当于直接帮我们统计了每个出现次数。要不还要用list或者dict来循环统计。如果用dict来统计的话,defaultdict也很好用,直接可以+1, -1操作。而对于Counter类,可以使用==,&等逻辑判断运算。题解如下:

 

349. 两个数组的交集

        这道题解法同样非常直观,想法是直接取两个数组的交集,然后去重复就好。python没有直接取交集的方法,不过可以新建一个数组完成取交集。具体方法如下:

def intersect(nums1, nums2):
    return [i for i in nums1 if i in nums2]

        不过这道题也可以先去重复,再取交集,这里可以用set,set可以直接用&或者intersect取交集。或者可以用上文提到的Counter,它也可以使用&操作。题解如下: 

202. 快乐数 

        这道题乍一看有点吓人,但是这种肯定是有规律的,不会让你一直试下去的。那这道题就是看什么时候开始循环,如果开始循环了还没有1,那肯定就不是。如果出现1了,那就是。那么这道题就需要把所有出现的和记录下来,然后如果某一次出现了之前记录过的,就说明循环了,那就可以停下来了。题解如下:

 

        这道题要学的是如何取一个数的每一位,一般余数取当前位,整除10取上一位。 

1. 两数之和

        梦开始的地方。这道题难点在于他要输出两个数的索引值,而不是数本身。如果输出数本身,那么这道题就简单多了,最笨的方法就是两个循环。那么如何用一个循环解决问题,首先,在第一遍遍历时,遇到的每个数都有可能是结果,而和他对应的可能在前面和后面,那么我们就用target和当前数的差值表示它所需的剩下的数,同时记录下它的索引值。这样往后遍历时,如果遇到这个差值,就可以马上返回了。题解如下:

 

其它:

学习时长:3h

学习心得:学会一些好用api

学习链接:有效的字母异位词, 两个数组的交集, 快乐数, 两数之和

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值