(js)leetcode 88. 合并两个有序数组 逃离我推掉我的手 2022-12-28 01:46 77阅读 0赞 ### 题目: ### > 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 > > 说明: > > 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 > 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 > > 示例: > > 输入: > nums1 = \[1,2,3,0,0,0\], m = 3 > nums2 = \[2,5,6\], n = 3 > > 输出:\[1,2,2,3,5,6\] > > 提示: > > \-10^9 <= nums1\[i\], nums2\[i\] <= 10^9 > nums1.length == m + n > nums2.length == n ### 思路: ### > 1. 将nums2的最后一位与nums1的第m位进行比较 > > 2. 将较大的那一位赋值给nums1的最后一位 > > 3. 较大的那个数组往前移一位,再次进行比较 ### 代码实现: ### /** * @param {number[]} nums1 * @param {number} m * @param {number[]} nums2 * @param {number} n * @return {void} Do not return anything, modify nums1 in-place instead. */ var merge = function(nums1, m, nums2, n) { let len = m + n; while(n > 0) { len--; if(m <= 0) { nums1[len] = nums2[n - 1]; n--; continue } if(nums2[n - 1] > nums1[m - 1]) { nums1[len] = nums2[n - 1]; n--; } else { nums1[len] = nums1[m - 1]; m--; } } }; ### 运行结果: ### ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01fRXZl_size_16_color_FFFFFF_t_70][] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01fRXZl_size_16_color_FFFFFF_t_70]: /images/20221120/a2402220b11a40d2ae9d45325add5c90.png
还没有评论,来说两句吧...