classSolution:
def removeDuplicates(self,nums: List[int])-> int:if nums == None : #非空检验
return0else:
c =len(nums)-1 #获取数组长度,倒序删除
for i inrange(c):if nums[c-i]== nums[c-i-1]:
del nums[c-i]returnlen(nums)
买卖股票的最佳时机 II
classSolution:
def maxProfit(self,prices: List[int])-> int:
t =0 #初始化最大利益
for i inrange(len(prices)-1): #只要后一天价格高于今天就买入,后一天再卖出
if prices[i+1]- prices[i]>0:
t = t + prices[i+1]- prices[i]return t
旋转数组
classSolution:
def rotate(self,nums: List[int],k: int)-> None:
a =len(nums)-1 #获取最后一位的序号
for i inrange(k): #先在左边插入最后一位,然后删除多出的
nums.insert(0,nums[a])
del nums[a+1]
classSolution:
def singleNumber(self,nums: List[int])-> int:
c =0for i inrange(len(nums)): #使用异或来计算
c = c ^ nums[i]return c
两个数组的交集 II
classSolution:
def intersect(self,nums1: List[int],nums2: List[int])-> List[int]:
nums =[] #空数组,使用双循环查交集
for i inrange(len(nums1)):for j inrange(len(nums2)):if nums1[i]== nums2[j]:
nums.append(nums2[j])
del nums2[j]breakreturn nums
加一
classSolution:
def plusOne(self,digits: List[int])-> List[int]:
s =0 #将数组合并为一个整数,然后对这个整数加1,再将整数分成数组
l =len(digits)for i inrange(l):
s = s + digits[i]*pow(10,l-i-1)
s = s +1
y=[]for i instr(s):
y.append(int(i))return y
移动零
classSolution:
def moveZeroes(self,nums: List[int])-> None:
l =len(nums)for i inrange(l):if nums[l-i-1]==0:
del nums[l-i-1]
nums.append(0)