①①
花褪残红青杏小。燕子飞时,绿水人家绕。枝上柳绵吹又少。天涯何处无芳草!
墙里秋千墙外道。墙外行人,墙里佳人笑。笑渐不闻声渐悄。多情却被无情恼。
2022年8月15日
121. 买卖股票的最佳时机
2022年8月16日
53. 最大子数组和
2022年8月17日
冒泡排序
时间:
空间:
# 冒泡排序
def bubbleSort(nums):
n = len(nums)
# for i in range(len(nums)):
# for j in range(i, len(nums)):
# if nums[i] > nums[j]:
# nums[i], nums[j] = nums[j], nums[i]
# # 将小值冒泡
# for i in range(n):
# exchange = False
# for j in range(n-2, i-1, -1):
# if nums[j] > nums[j+1]:
# nums[j+1], nums[j] = nums[j], nums[j+1]
# exchange = True
# if not exchange:
# break
# return nums
# 将大值冒泡
for i in range(n):
exchange = False
for j in range(n-i-1):
if nums[j] > nums[j+1]:
nums[j+1], nums[j] = nums[j], nums[j+1]
exchange = True
if not exchange:
break
return nums
2022年8月18日
选择排序
时间:
空间:
# 选择
def selectionSort(nums):
n = len(nums)
# # 选择 小 → 大
# for i in range(n):
# minIdx = i
# # minIdx = n - 1
# for j in range(i, n):
# if nums[j] < nums[minIdx]:
# minIdx = j
# nums[i], nums[minIdx] = nums[minIdx], nums[i]
# 选择 大 → 小
for i in range(n-1, -1, -1):
maxIdx = i
# minIdx = n - 1
for j in range(i, -1, -1):
if nums[j] > nums[maxIdx]:
maxIdx = j
nums[i], nums[maxIdx] = nums[maxIdx], nums[i]
return nums
2022年8月19日
插入排序
时间:
空间:
# 插入
def insertionSort(nums):
# 次次交换
n = len(nums)
# for i in range(1, n):
# for j in range(i, 0, -1):
# if nums[j-1] > nums[j]:
# nums[j-1], nums[j] = nums[j], nums[j-1]
# else:
# break
# return nums
# 次次交换/2
for i in range(1, n):
# 寻找a[i]合适的插入位置
temp = nums[i]
for j in range(i, 0, -1):
if (temp < nums[j-1]):
nums[j] = nums[j-1]
else:
j += 1
break
nums[j-1] = temp
return nums