2023-12-04

继续哈希表

用到了map,对所有的遍历,动态控制一个长度为26的数组,对每一个遍历的都能够得到一个键值,如果map里不包含此键值,就放进去,获得键值后add里面。最后返回所有键值,map.get(key).add(strs[i]);

2,快乐数

也就是说,会存在无限循环,因此当出现和之前一致的数时,就应当跳出了。

用到了hash.add函数,当它的值返回false的时候,表明哈希表里面已经存在这个数字,所以就应当返回false了。用别的函数算每次每位的平方和。

3,四数相加

steps:定义unordered_map,key为a和b两数之和,value为a和b两数之和出现的次数;

遍历大A和大B数组,统计;

定义count,最终的结果变量;

遍历大C和大D数组,如果有0-(c+d)出现的话,给count赋值。

返回count;

4,三数之和

要先排序,用双指针法,for循环一个从0到length,left记为i+1;right从末尾开始,如果三数之和大于0,right--;三数之和小于0,left++;如果相等,就加入,并且移动right和left。删除重复的,对a的比较,如果现在与前一个相等,跳过这个i,right和left与前一个和后一个分别一样的时候,也挪动。

5,四数之和

与三数之和一致,就是加入两层for循环,再对4个数字分别进行去重处理;也是两个指针

另外,前面的也要判断,因为四个和为target而不是0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值