西安 医疗网站建设百度网站优化方案
起因, 目的:
- 做题的过程中,不能听歌, 减少干扰。
- 太简单,没意思。太难太复杂,容易放弃。 如何找到难度合适的题?
题目来源: 88. 合并两个有序数组
参考题解: 官方题解,方法二:双指针
继续做双指针。
def solu(nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3):done = []# 定义2个指针,从0开始。p1 = 0p2 = 0# while 这个条件,不太好理解。# 表示, 只要有一个还没处理完, 就继续处理, 直到2个列表都处理完。while p1 < m or p2 < n:# 下面这2个是边界条件。if p1 == m: # nums1 已经处理完了, 只能取 nums2done.append(nums2[p2])p2 += 1elif p2 == n: # nums2 已经处理完了, 只能取 nums1done.append(nums1[p1])p1 += 1# 比较大小elif nums1[p1] < nums2[p2]:done.append(nums1[p1])p1 += 1else:done.append(nums2[p2])p2 += 1# 最后直接修改 nums1nums1[:] = doneprint(solu( nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 ))