首页 > 应用开发 > > 程序员面试刷算法之leetcode数组部分
小伙伴们大家好,今天我们来分享一下leetcode中的三个简单题目,面试中是有可能问到的。
数组35题,搜索插入数据
题目描述
代码
#单词数组遍历,比较大小即可完成
class Solution:
def searchInsert(self, nums, target):
i=0
while i<len(nums):
if nums[i]==target:#找到目标数值,直接返回
return i
elif nums[i]<target:#小于目标值,往后找
i+=1
elif nums[i]>target:#大于目标值,在该位置插入
return i
return len(nums)#遍历完成数组还未找到,在末尾插入
if __name__ == '__main__':
s=Solution()
li=[1,3,5,6]
index=s.searchInsert(li,5)
print(index)数组53题,最大子序列之和
题目描述
代码
#主要应用动态规划的思想,每一次都局部比较当前几个数的和
#并同已设定更新的maxSum相比较
class Solution:
def maxSubArray(self, nums) :
maxSum=nums[0]#最大子序列和
i=0#标记变量
sum=0#局部累加值
while i<len(nums):
sum+=nums[i]
if sum>maxSum:#更新子序列最大值
maxSum=sum
if sum<0:#赋值为0,重新累加
sum=0
i+=1
return maxSum
if __name__ == '__main__':
s=Solution()
li=[-2,1,-3,4,-1,2,1,-5,4]
maxSum=s.maxSubArray(li)
print(maxSum)数组66题 加一
题目描述
代码
#思路比较简单,主要是先辗转相除,累加,
#再辗转取余,头插法存入列表
class Solution:
def plusOne(self, digits) :
#[1,2,3]-->[1,2,4]
i=0
sum=0
length=len(digits)
#辗转相除,求累加和
while i<len(digits):
nowPow=pow(10,i)
sum+=digits[length-1-i]*nowPow
# print("nowPow %s sum %s" %(nowPow,sum))
i+=1
nowKey=sum+1#加一之后的值
nowList=[]
#辗转取余存列表
while nowKey>0:
i=nowKey%10
nowList.insert(0,i)
nowKey=nowKey//10
return nowList
if __name__ == '__main__':
s=Solution()
li=[1,2,3]
s=s.plusOne(li)
print(s)本文转自: 哈皮计算机
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69927062/viewspace-3145792/ ,如需转载,请注明出处,否则将追究法律责任。