题目
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-insert-position
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题
我用的是贪心算法
一个一个加, 如果发现求和后等于0 ,就restart
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
n = len(nums)
sum_e = max_e = nums[0]
for i in range(1,n):
if sum_e > 0:
sum_e +=num[i]
else:
sum_e = num[i] #算法解释的时候是说如果和小于0就重开就是调为0,那这里为什么不是sum_e = num[i],我想了很久也调了一下 发现其实调为0是在之前,0加num[i]之后不就等于num[i]
max_e = max(sum_e,max_e)
return max_e
结果:
下面这种算法是官方解法,但是算大都是一样的,用的都是贪心算法,表达不一样而已
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
n = len(nums)
sum_e = max_e = nums[0]
for i in range(1,n):
sum_e = max(nums[i],nums[i]+sum_e)
max_e = max(sum_e,max_e)
return max_e
结果:
11天
over
发现题目可以贴图 太笨了 之前一直复制粘贴…