核心思想:倒着填充
/*
* @lc app=leetcode id=88 lang=cpp
*
* [88] Merge Sorted Array
*/
// @lc code=start
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int L = m-1;
int R = n-1;
int loc = m+n-1;
while( L>=0 && R>=0 ){
if(nums1[L] > nums2[R]){
nums1[loc--] = nums1[L--];
}else{
nums1[loc--] = nums2[R--];
}
}
while(L>=0) nums1[loc--] = nums1[L--];
while(R>=0) nums1[loc--] = nums2[R--];
}
};
// @lc code=end
本文详细解析了LeetCode上的经典题目——合并两个有序数组(88题)的解决方案。核心思想是从数组末尾开始比较并填充较大元素,确保合并后的数组仍保持有序状态。此方法避免了传统正向遍历可能引发的元素覆盖问题,是一种高效且直观的解题策略。
1529

被折叠的 条评论
为什么被折叠?



