ITPub博客

首页 > 应用开发 > > 程序员面试刷算法之leetcode数组部分

程序员面试刷算法之leetcode数组部分

作者:u_509a2a8fdb46 时间:2019-09-23 14:11:05 0 删除 编辑

小伙伴们大家好,今天我们来分享一下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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-08

  • 博文量
    210
  • 访问量
    38