力扣3/9

152.乘积最大的子数组

动态规划:以第i个位置结尾的最大子数组乘积,是在以第i-1个位置结尾的子数组乘积的最大值*第i个元素的值,第i-1个位置结尾的子数组乘积的最小值*第i个元素的值,和第i个元素的值中取最大值,注意这里要使用一个临时变量记录原始的最大最小值,使用一个全局最大值记录遍历过程中的最大子数组的乘积,还要从第二个元素开始遍历。

416.分割等和子集

01背包问题:背包目标是装满集合所有元素和的一半,用01背包的思路解决

72.编辑距离

        

多维动态规划:两个字符串的最后一个字符相同,等于前i-1,j-1个字符串的修改次数,不相同,就从下面三种情况选最小值:删除第一个字符串的最后一个个字符,则为dp[i-1][j]+1,删除第二个字符串的最后一个字符:dp[i][j-1]+1,替换两个字符串的最后一个字符:dp[i-1][j-1]+1,删除和插入是可逆的逻辑,只需要考虑一种情况即可。

287.寻找重复数

快慢指针:因为空间复杂度为O(1),所以用指针,把数组看成链表,如果有重复元素,则一定有环,入口元素为重复元素,先通过快慢指针相遇,然后把快指针退回到初始位置,初始位置和相遇位置到入口元素的距离相等,快慢指针都移动一步直到相遇,返回慢指针元素

78.子集

回溯:树中的每个结点都是结果集中的答案,与全排列的区别在于数组是从idx开始遍历,将i+1作为下一层递归的idx,全排列还要看每个元素是否被使用过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值