哈希表: 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

242

虽然以前在数据结构这个课里学过哈希表,但那时候也仅仅会的是理论知识,今天才真的做到了学有所用。哈希表的三种方式:数组,set,map。我们要知道什么时候要使用哈希表呢?那就是当我们要判断一个元素是否出现在集合中时。首先第一题有效的字母异位词,这个词听着确实很高级,但其实也就是判断两个字符串中出现的每个字符的出现次数是否相同。现说思路,因为两个字符串仅包含小写字母,要想到用数组,所以首先我们需要一个数组arr长度为26,从0-25存储从a-z每一个字符出现的次数。然后我们遍历第一个字符串s1,将arr数组中s.charAt(i)-'a'位置上的值做加一操作,这样arr数组中索引的值就代表该索引对应小写字母出现的次数了,同理管理s2做减一操作。最后遍历arr,如果每个元素都为0则返回true,否则返回false。代码在下面⬇️0d14ddcb3d27453b885deba22aaefa15.png

349

第一眼肯定的双层for,但因为今天学的哈希表,就一直在想哈希表做法,后来又看了卡尔的视频,才明白这个可以用数组也可以用set。因为这个数据范围是0-1000。上一个用了数组,这个就想着用set,还补了一下Java里set的知识。真的要勤复习,不然忘的是真的快。思路:首先我们需要新建两个hashSet,第一个用来存第一个数组的元素,第二个用来存放两个数组的交集。 最后再将第二个hashSet中的值存到新建的arr数组中,返回arr数组。303c9bdf73c549f18eb07101678d040b.png

 

202-快乐数

这道题也是用HashMap,因为我们要判断n的值在不在集合中,n是否为1从而确实这个数是否为快乐数,这时候肯定会想到循环,n的值也在添加到集合以后发生改变。那循环肯定有两个跳出条件,第一个就是n为1,第二个则是n存在在集合中。我们只需要在循环结束以后判断是哪个情况导致循环终止。从而返回true或false513fa75c2a3f4444be4d803f24f0b767.png

1-两数之和

今天有点累这道题明天补发 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值