53.最大子序和
class Solution:
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
for i in range(1,len(nums)):
if nums[i-1]>0:
nums[i]+=nums[i-1]
return max(nums)
54.最后一个单词的长度
class Solution:
def lengthOfLastWord(self, s):
"""
:type s: str
:rtype: int
"""
w=s.split()
if(len(w)<1):
return 0
return len(s.split()[-1])
66.加一
class Solution:
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
for i in range(len(digits)):
digits[i]=str(digits[i])
num=str(int(''.join(digits))+1)
a=list(num)
for i in range(len(a)):
a[i]=int(a[i])
return a
67.二进制求和
class Solution:
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
sum,c=[],[0]
a=[int(i) for i in list(a)]
b=[int(i) for i in list(b)]
if(len(a)>len(b)):
b=[0]*(len(a)-len(b))+b
else:
a=[0]*(len(b)-len(a))+a
a.reverse()
b.reverse()
for i in range(len(a)):
if(a[i]+b[i]+c[i]>=2):
c.append(1)
else:
c.append(0)
sum.append((a[i]+b[i]+c[i])%2)
if(c[-1]==1):
sum.append(1)
sum.reverse()
sum=[str(i) for i in sum]
return ''.join(sum)
69.x的平方根
class Solution:
def mySqrt(self, x):
"""
:type x: int
:rtype: int
"""
i=0
j=x
while(i<=j):
m=(i+j)//2
if(m*m==x):
return m
elif(m*m<x):
i=m+1
else:
j=m-1
return i-1
70.爬楼梯
class Solution:
def climbStairs(self, n):
"""
:type n: int
:rtype: int
"""
nums=[0,1,2]
if(n==1):
return nums[1]
elif(n==2):
return nums[2]
else:
for i in range(3,n+1):
nums.append(nums[i-1]+nums[i-2])
return nums[n]