classSolution(object):defsingleNumber(self, nums):"""
:type nums: List[int]
:rtype: int
"""
dic ={}for i in nums:if i in dic:
dic[i]= dic[i]+1else:
dic[i]=1returnlist(dic.keys())[list(dic.values()).index(1)]
classSolution(object):defplusOne(self, digits):"""
:type digits: List[int]
:rtype: List[int]
"""
result =[]for i instr(int("".join([str(i)for i in digits]))+1):
result.append(int(i))return result
8、移动零
classSolution(object):defmoveZeroes(self, nums):"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""ifnot nums:return0# 第一次遍历的时候,j指针记录非0的个数,只要是非0的统统都赋给nums[j]
j =0for i inrange(len(nums)):if nums[i]:
nums[j]= nums[i]
j +=1# 非0元素统计完了,剩下的都是0了# 所以第二次遍历把末尾的元素都赋为0即可for i inrange(j,len(nums)):
nums[i]=0
9、两数之和
classSolution(object):deftwoSum(self, nums, target):"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
result =[]for i inrange(len(nums)):for j inrange(i+1,len(nums)):if nums[i]+nums[j]==target:
result.append(i)
result.append(j)return result
10、有效的数独
classSolution(object):defisValidSudoku(self, board):"""
:type board: List[List[str]]
:rtype: bool
"""
charList =[str(i)for i inrange(1,10)]
charList.append(".")# 检查每一行
flag =Truefor List in board:# 是否存在重复元素
temp =[i for i in List if i!='.']iflen(set(temp))!=len(temp):
flag =Falsebreak# 是否属于字符集合for i in List:if i notin charList:
flag =Falsebreak# 检查每一列for i inrange(9):# 构建每一列的列表
ListColumn =[]for j inrange(9):
ListColumn.append(board[j][i])# 是否存在重复元素
temp =[i for i in ListColumn if i!='.']iflen(set(temp))!=len(temp):
flag =Falsebreak# 是否属于字符集合for i in ListColumn:if i notin charList:
flag =Falsebreak# 检查每一个九宫格
L1 =[0,1,2]
L2 =[3,4,5]
L3 =[6,7,8]for i inrange(1,10):if i==1:
List1 = L1
List2 = L1
elif i==2:
List1 = L1
List2 = L2
elif i==3:
List1 = L1
List2 = L3
elif i==4:
List1 = L2
List2 = L1
elif i==5:
List1 = L2
List2 = L2
elif i==6:
List1 = L2
List2 = L3
elif i==7:
List1 = L3
List2 = L1
elif i==8:
List1 = L3
List2 = L2
else:
List1 = L3
List2 = L3
ListColumn =[]for j in List1:# 构建每一九宫格的列表for k in List2:
ListColumn.append(board[j][k])# 是否存在重复元素
temp =[i for i in ListColumn if i!='.']iflen(set(temp))!=len(temp):
flag =Falsebreak# 是否属于字符集合for i in ListColumn:if i notin charList:
flag =Falsebreak# 返回结果return flag
11、旋转图像
classSolution(object):defrotate(self, matrix):"""
:type matrix: List[List[int]]
:rtype: None Do not return anything, modify matrix in-place instead.
"""import numpy as np
temp = np.zeros((len(matrix),len(matrix)))for i inrange(len(matrix)):for j inrange(len(matrix)):
temp[i][j]= matrix[len(matrix)-1-j][i]for i inrange(len(temp)):for j inrange(len(temp)):
matrix[i][j]=int(temp[i][j])
1、删除排序数组中的重复项class Solution(object): def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ if len(nums)==0: return 0 else: i = 0 for j in range(l