Skip to content

Latest commit

 

History

History
25 lines (16 loc) · 1.08 KB

File metadata and controls

25 lines (16 loc) · 1.08 KB

思路

  • 拿到题的直觉解法
    • 为什么题目给你的nums1已经有足够的长度了?
    • 因为在merge sorted的时候,必须有一个辅助的array,来帮助合并,否则的话,就很难(也许有办法)做到无需额外空间也能sort了。 比如[4,5,6,7,1,2,3,4],由前半部分和后半部分组成,分别是一个sorted array;如果不需要额外空间,怎么直接排序?
    • 这里我们要一个额外的空间,然后双指针从尾部和中部,边比较边从尾部填入temp array,然后复制到原array。从头部也可以;
    • 所以这里我们总结的经验是,对于这种merge sorted问题,不要浪费时间想办法在线合并,而应该借助额外的空间来合并。
    • 这一题不需要额外的空间了,因为nums1本身就扮演了额外空间的角色;(所以如果我们发现不允许额外空间,那肯定题目偷偷给了额外的空间,来规避这种缺陷)
    • 这题从尾部扫,nums1就可以当作temp array使用。

AC

代码

复杂度

time: space: