题目描述
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
说明:
初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。
你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
本文答案参考自 LeetCode 官方题解。 [敲打]
简单 的呢~
【方法1】头铁直接合并排序
将两个数组拼接后,直接调用排序算法。
这就TM离谱。
【方法2】官方名称:双指针 / 从前往后
先将 nums1 复制一份(称为 nums1_temp)
然后 双指针:从 nums1_temp 和 nums2 中选出当前指针指向的较小者,将其覆写到 nums1
[耶]
【方法3】官方名称:双指针 / 从后往前
【方法2】中使用了 nums1_temp , 如果 nums1很大,那么这将会是一个巨大的空间消耗。
这里我们可以从 nums1 的后面开始添加元素,这样做只需常数级空间
创建三个指针 p,p1,p2 。分别指向 nums1的末尾 ,nums1的有效数字的末尾,nums2的末尾
具体操作是:
- 如果 nums1[ p1 ] < nums2[ p2 ],则 nums1[ p ] = nums2[ p2 ],然后把 p 和 p2 往前移
- 如果 nums1[ p1 ] >= nums2[ p2 ],则 nums1[ p ] = nums2[ p2 ],然后把 p 和 p1 往前移
一句话,这个方法就像是 从后面往前面把数字 “捋” 顺
Reliable content. Regards!
hire someone to write an essay write an email for me
Nicely put, Thanks a lot.
why do we write essays writing an essay intro
Amazing a good deal of great tips.
pay for someone to do your essay paying someone to write a paper
You expressed that really well.
essays for sale online
Many thanks. Quite a lot of postings.
write my essay for me no plagiarism write my java code for me
You actually said this well!
write my essay online cheap write my book review for me
Nicely put. Kudos!
what are your strengths and weaknesses as a writer essay write literature review for me
Nicely put. Kudos!
virgin casino online nj betrivers online casino
Cheers! I enjoy it.
essay writer review help me write my scholarship essay