Algorithm一道算法题
Review阅读并点评一篇英语文章
Technique/Tips一个小技术
Share分享一篇有观点和思考的技术文章

Algorithm

冒泡排序算法实现

快排

二分查找

实现有重复数字的升序数组的二分查找
给定一个 元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1
示例1输入[1,2,4,4,5],4 返回值2
示例2输入[1,2,4,4,5],3 返回值-1
示例3 输入[1,1,1,1,1],1 返回值0
image.png

  1. class Solution:
  2. def search(self , nums , target ):
  3. # write code here
  4. low=0
  5. high=len(nums)-1
  6. ans=-1
  7. while low<=high:
  8. mid=(low+high)//2 //表示向下取整
  9. if nums[mid]==target:
  10. ans=mid
  11. high=mid-1
  12. elif nums[mid]>target:
  13. high=mid-1
  14. else:
  15. low=mid+1
  16. return ans

大数加法

以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。
(字符串长度不大于100000,保证字符串仅由’0’~’9’这10种字符组成)
示例1
输入”1”,”99”
返回值”100” 注意不能产生科学计数法

image.png

  1. class Solution:
  2. def solve(self , s , t ):
  3. # write code here
  4. ans = eval(s)+eval(t) #计算字符串表达式s+t,返回值
  5. return str(ans) #值再转化为字符串

路由算法

分为静态和动态两种。
静态

  • 使用Dijkstra算法构建汇集树来计算最短路径路由
  • 使用洪泛

动态