LeetCode解题思路总结

本文总结了LeetCode上的几道经典题目,包括Subtree of Another Tree的递归解法、Kill Process的HashMap应用、Delete Operation for Two Strings的动态规划思路等。通过这些题目的解析,帮助读者更好地理解算法设计思想。

还是写个博客总结一下在LeetCode上刷的题吧....不然做过的题的解法都忘了....


认真读题....


572. Subtree of Another Tree

看清题目,代码应简洁,使用递归


582. Kill Process

使用HashMap遍历数组,在O(N)时间内建树(分离链表),然后搜索


583. Delete Operation for Two Strings

不是比较最大子串,因为是删除,可以间隔几个字母。

因为间隔了字母,可用DP保存状态。


611. Valid Triangle Number

三个数的遍历。暴搜不能

~~先sort数组再说~~

解法1:固定后两个数,将第一个数从前往后遍历,但是第三个数在循环时第一个数不变。

for(int i = 1; i < n - 1; i++){
    int k = 0;
    for(int j = i + 1; j < n; j++){
        while(k < i && nums[k] + nums[i] <= nums[j]) k++;
        count += i - k;
    }
}
但是k=0不能放在最外面,因为当i移动时,k必须初始化,否则会漏掉一些解。

解法2:固定前两个数,第三个用二分查找。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值