Leetcode 算法题 88. 合并两个有序数组

打印 上一主题 下一主题

主题 686|帖子 686|积分 2058

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
起因, 目的:



  • 做题的过程中,不能听歌, 减少干扰。
  • 太简单,没意思。太难太复杂,轻易放弃。 如何找到难度合适的题?
标题泉源: 88. 合并两个有序数组

参考题解: 官方题解,方法二:双指针

继续做双指针。

  1. def solu(nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3):
  2.     done = []
  3.     # 定义2个指针,从0开始。
  4.     p1 = 0
  5.     p2 = 0
  6.     # while 这个条件,不太好理解。
  7.     # 表示, 只要有一个还没处理完, 就继续处理, 直到2个列表都处理完。
  8.     while p1 < m or p2 < n:
  9.         # 下面这2个是边界条件。
  10.         if p1 == m:  # nums1 已经处理完了, 只能取 nums2
  11.             done.append(nums2[p2])
  12.             p2 += 1
  13.         elif p2 == n: # nums2 已经处理完了, 只能取 nums1
  14.             done.append(nums1[p1])
  15.             p1 += 1
  16.         # 比较大小
  17.         elif nums1[p1]  <  nums2[p2]:
  18.             done.append(nums1[p1])
  19.             p1 += 1
  20.         else:
  21.             done.append(nums2[p2])
  22.             p2 += 1
  23.     # 最后直接修改 nums1
  24.     nums1[:] = done
  25. print(solu( nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3  ))
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

星球的眼睛

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表