53. 最大子序和
输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
算法:
def lengthOfLastWord(self, s: str) -> int:
s = 0
ms = nums[0]
for i in range(len(nums)):
s += nums[0]
if s > ms:
ms = s
if s < 0:
s = 0
return ms
分析:使用了动态规划法,间复杂度为O(n)。首先,不考虑负数的和,将基数s设置为0;然后,将前一项与后一项相加后大于前一项,则更新最大和ms,并逐步累加;遇到基数小于0就重置为0;最后输出最大和。
58. 最后一个单词的长度
输入: "Hello World",输出: 5
算法:
def lengthOfLastWord(self, s: str) -> int:
count = 0
res = ''
for i in s[::-1]:
if res != '' and i == ' ':
return count
if i != ' ':
res += i
count += 1
return count
网友评论