代码随想录打卡第6天|哈希表理论基础;242、有效的字母异位词;349、 两个数组的交集;202、 快乐数;1、两数之和

242、有效的字母异位词

关键点1:用数组实现 --->新建一个length = 26的数组nums,

关键点2:对字符串A的操作,遍历字符串s_A,nums[s_A.charAT(i) -'a']++

关键点3:对字符串B的操作,遍历字符串s_B,nums[s_B.charAT(i) -'a']--

关键点4:遍历数组nums,if数组中有元素不为0,就返回false,否则就返回true

349、 两个数组的交集

关键点1:用HashSet实现,新建两个set,set1和resSet一个用来做判断用,一个用来存数据用,因为存放数据set相比数组而言,set有去重的作用

关键点2:遍历数组1,将数组1中的元素全部存入set1中

关键点3:遍历数组2,判断数组2中的元素,是否在set1中:if(set1.contains(nums2[i])),如果在,则存入resSet

关键点4:新建一个数组,将resSet中的元素存入数组中

        int j=0;

        for(int i:resSet){

            resArr[j++] = i;

        }

202、 快乐数

关键点1:用HashSet实现,新建一个set,当n不在set里,则将n这个数添加到set中,然后调用计算下一个n的方法

public int getN(int n){

        int res = 0;

        while(n > 0){

            int temp = n % 10; 

            res += temp * temp;

            n = n / 10;

        }

        return res;

    }

关键点2:如果n == 1 则返回true,否则返回false

1、两数之和(target =  numX+numY )

 关键点1:用HashMap实现,新建一个map,key放数组的值,value 放值对应的下标index

 关键点2: 遍历数组,numY = target - nums[i],判断numY 是否在map中,如果在,num[i]和numY就是这两个数,它们对应的下标 i 和map.get(numY)就是返回的下标值,如果不在则返回new int[0]

有具体返回数值的,要注意前面数组的单独判断条件,返回空的时候也要注意:大多时候是 return new int[0];  除非题目说明可以返回null,例如下面:

        if(nums1 == null || nums1.length == 0 || nums2 == null || nums2.length == 0){

            return new int[0];            

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值