从头开始复习的篇章

过去的三个月基本上是没在学习,因此我将把我之前学习过的内容重新复习一下
同时在这里粘一个markdown的语法指南,方便后续学习
链接:markdown语法指南

数组

二分查找

题目链接:二分查找


二分查找题目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
def search(self, nums: List[int], target: int) -> int:
# 设置两个指针
left = 0
right = len(nums)
# 取值区间左闭右开
# 循环条件就是左指针未超过右指针
while left < right:# (不取等——因为右边是开)
middle = (left + right) // 2 # 二分查找怎么确定中间值是直接除以二还是要加一
# 这里不用加一 整除是向下取整的(奇数刚刚好,偶数偏小)
if target < nums[middle]: # 用target和中间值作比较
right = middle #调整右指针,能取等是因为本身右指针就取不到
elif target > nums[middle]:
left = middle + 1 #判断条件是大于,因此要调整为加一
else: #表示取到了
return middle
return -1 #必须放到循环外面知道循环结束都没找到再返回-1