![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 50
Hobo1992
这个作者很懒,什么都没留下…
展开
-
leetcode53 Maximum Subarray
其实这个主要步骤就是找最大,从左向右,从右向左都一样。如果和大于其他和,那么这个和就是最大的,如果和小于值,那这个值或许就是最大的,极端点的例子[-1,-2,-3,-4,1,-3,-2]。在leetcode看到一个不用对比nums[i]和sum的,直接在max赋值之后sum如果小于0归0,也很巧妙,如果这个元素之前的总和为0,那么完全可以由他算起,就算全部都是负数,最大的负数也已经存在于max这个赋值中。其实应该可以写成Math.max(max, Math.max(sum,nums[i]))原创 2023-06-04 00:16:35 · 59 阅读 · 1 评论 -
leetcode21 Merge Two Sorted Lists
在这个题里面其实很好找,就是list1 或/并 list2为空的时候,如果list1 或/并 为空的时候,我们也不需要遍历或者递归了,直接返回就行了,list1递归完了 返回list2, list2递归结束返回list1, 因为另一方可能还有值,但是这些值不需要关心了,直接返回就可以了,就是归就可以了。还有一个方法是建立虚拟的头节点,这个很好理解,就是建立一个虚拟头节点,然后对比list1 list2的结点,按照从小到大接到虚拟头结点后面,最后返回虚拟头结点的next。easy list 第三题。原创 2023-06-04 00:00:00 · 65 阅读 · 1 评论 -
leetcode20 Valid Parentheses
但是这个代码在测试用例([])失败了,看起来必须是“严格”匹配也就是只能是()[]这样,所以还是用栈这个数据结构最合适。然后使用栈可以写出如下。easy list的第二题是括号验证,最开始我想到的是计数法,比如左括号右括号,然后左右相加模2为0,这样就可以判断出来括号是否匹配了。这个其实也不难,因为严格匹配所以限定的很死,不过最后一个else需要注意,我刚开始没写然后会有一些错误比如([{)这种其实也能通过。这个逻辑很简单,代码如下。原创 2023-06-03 22:16:50 · 60 阅读 · 1 评论 -
Leetcode13 Roman to Integer
leetcode13 roman to Integer原创 2023-05-30 19:07:14 · 70 阅读 · 1 评论