持续更新
快速排序
def quick_rank(nums):
if len(nums) <= 1:
return nums
left,right = [],[]
mid = nums[0]
for i in nums[1:]:
if i > mid:
right.append(i)
else:
left.append(i)
return quick_rank(left)+ [mid]+quick_rank(right)
二分查找
给定一个有序数组 arr 和一个目标元素 target ,返回该 target 在 arr 中的索引,若不存在,返回-1
def binary_search(nums,target):
left,right = 0, len(nums) - 1
while left <= right:
mid = (left+right)//2
if nums[mid] == target:
return mid
if nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
爬楼梯
有一个楼梯,总共有10级台阶,每次只能走一级或者两级台阶,全部走完,有多少种走法
def pa_stairs(n):
if n == 1:
return 1
if n ==