Leetcode 合并有序数组 Merge 2 arrays in 1 array
来源:互联网 发布:php api接口开发规范 编辑:程序博客网 时间:2024/06/08 02:53
《进军硅谷》原题:合并有序数组
给定两个有序数组A和B, 合并B到A, 结果保持有序。假设A有足够空间容纳B。初始时,A、B元素各有m和n个;
Leetcode: https://leetcode.com/problems/merge-sorted-array/
分析:
数组插入新元素没有链表那么方便,因为插入一个新元素会导致插入后的所有元素的移动,为了避免移动,通常从后向前插入,即反向插入;
思路:
1 找到原有数组A和B的最后一个元素;
2 逐个把较大的值放在A数组的m+n-1位置向前。
3 一定要先画图,再写代码;注意边界条件!
public void Merge(int[] nums1, int m, int[] nums2, int n) { //边界条件 if (n == 0) return; if (m == 0) //返回所有的nums2到nums1中 while (n > 0) { nums1[n - 1] = nums2[n - 1]; n--; } int i = m - 1; int j = n - 1; int k = m + n - 1; while (i >= 0 || j >= 0) { if (i < 0 && j >= 0) { nums1[k] = nums2[j]; j--; } else if (i >= 0 && j < 0) { //do nothing i--; } else { if (nums1[i] >= nums2[j]) { nums1[k] = nums1[i]; i--; } else if (nums1[i] < nums2[j]) { nums1[k] = nums2[j]; j--; } } k--; } }
0 0
- Leetcode 合并有序数组 Merge 2 arrays in 1 array
- leetcode Merge Sorted Array 合并有序数组
- Merge Sorted Array 合并两个有序数组 @LeetCode
- 【LeetCode】- Merge Sorted Array (合并有序数组).
- (每日算法)LeetCode -- Merge Sorted Array (合并有序数组)
- [LeetCode-88] Merge Sorted Array(合并有序数组)
- LeetCode Merge Sorted Array(合并有序数组)
- LeetCode 88. Merge Sorted Array(合并有序数组)
- leetcode 88. Merge Sorted Array合并有序数组
- Merge Sorted Array 合并两个有序数组
- Merge Sorted Array -- 合并两个有序数组
- Merge Sorted Array合并两个有序数组
- leetcode88---Merge Sorted Array(合并有序数组)
- 88. Merge Sorted Array 合并有序数组
- [leetcode]Merge Sorted Array (两个有序数组的合并 C语言实现)
- Leetcode刷题记——88. Merge Sorted Array(合并有序数组)
- LeetCode WIith JS || 88. Merge Sorted Array[合并有序数组]
- 【LeetCode】Merge Sorted Array ---合并数组
- 迷途知返,脚踏实地——目标导航
- iOS开发 iOS10推送必看(基础篇)
- Unity实现自己的事件机制(简单实现)
- syntax error : missing ';' before 'using'
- HTML5学习_day05(3)--html之float定义
- Leetcode 合并有序数组 Merge 2 arrays in 1 array
- 常用js框架之vue.js入门
- jsp页面通过js将时间格式化并赋初始值
- Java堆内存Heap与非堆内存Non-Heap简介和设置
- Java 8系列之重新认识HashMap
- Linux系统管理
- 5 Shuffling Machine
- 内存寻址、计算机组成原理等~
- Fence Repair(挑战程序设计竞赛2.2)