马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
起因, 目的:
- 做题的过程中,不能听歌, 减少干扰。
- 太简单,没意思。太难太复杂,轻易放弃。 如何找到难度合适的题?
标题泉源: 88. 合并两个有序数组
参考题解: 官方题解,方法二:双指针
继续做双指针。
- def solu(nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3):
- done = []
- # 定义2个指针,从0开始。
- p1 = 0
- p2 = 0
- # while 这个条件,不太好理解。
- # 表示, 只要有一个还没处理完, 就继续处理, 直到2个列表都处理完。
- while p1 < m or p2 < n:
- # 下面这2个是边界条件。
- if p1 == m: # nums1 已经处理完了, 只能取 nums2
- done.append(nums2[p2])
- p2 += 1
- elif p2 == n: # nums2 已经处理完了, 只能取 nums1
- done.append(nums1[p1])
- p1 += 1
- # 比较大小
- elif nums1[p1] < nums2[p2]:
- done.append(nums1[p1])
- p1 += 1
- else:
- done.append(nums2[p2])
- p2 += 1
- # 最后直接修改 nums1
- nums1[:] = done
- print(solu( nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 ))
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |