代码随想录算法训练营day07 |454、383、15、18

454

ab/cd分两部分遍历提高时间复杂度

要计数,所以不用判断找没找到,有判断的话则一直加不进去。

383

一开始想用map,有问题,先考虑能否用hasp,再选择array/set/map.

待构成的赎金心size一定要小于等于构成的元素size

15

1.哈希法要考虑去重!

2.双指针法

num[i] == num[i-1],和前面的判断,如果相等,说明前面已经出现同样的三元组了,直接continue

再判断bc去重时,保证right>left,且之后记得两侧向中间移位置。

continue跳出本次循环,则会进入while判断中,个例会一直重复,超出time limit。continue在while循环中的作用_while continue-CSDN博客

18

双指针法

排序后不能依照 nums[k] > target 来剪枝,因为target有可能是负数,负数相加更小

k,i,两层逐层剪枝,之后遍历left,right指针。

此时用break,不用return result是因为有两层循环,剪枝只需要推出当前的循环。

总结

一般来说哈希表都是用来快速判断一个元素是否出现集合里

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值