leetcode 88 Merge Sorted Array
来源:互联网 发布:诸宸的悲剧 知乎 编辑:程序博客网 时间:2024/05/29 10:12
Given two sorted integer arrays nums1 and nums2, merge nums2 intonums1 as one sorted array.
Note:
You may assume that nums1 has enough space (size that is greater or equal tom +n) to hold additional elements from nums2. The number of elements initialized innums1 andnums2 are m and n respectively.
测试用例:
Runtime Error Message:
Last executed input:
Input:[1,2,3,0,0,0], 3, [2,5,6], 3
Output:[1,2,3,5,6]
Expected:[1,2,2,3,5,6]
错误的解决方案:
class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { set<int> result; for(int i = 0;i<m;i++) { result.insert(nums1[i]); } for(int i = 0;i<n;i++) { result.insert(nums2[i]); } nums1.clear(); set<int>::iterator iter = result.begin(); for(;iter!=result.end();iter++) { nums1.push_back(*iter); } }};
我的解决方案:上面就是相同 的元素没装进来,换成multiset就行了
class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { multiset<int> result; for(int i = 0;i<m;i++) { result.insert(nums1[i]); } for(int i = 0;i<n;i++) { result.insert(nums2[i]); } nums1.clear(); set<int>::iterator iter = result.begin(); for(;iter!=result.end();iter++) { nums1.push_back(*iter); } }};
简短的解决方案:
class Solution {public: void merge(int A[], int m, int B[], int n) { int k = m + n; while (k-- > 0) A[k] = (n == 0 || (m > 0 && A[m-1] > B[n-1])) ? A[--m] : B[--n]; }};
可读性较好:
class Solution {public: void merge(int A[], int m, int B[], int n) { int i=m-1; int j=n-1; int k = m+n-1; while(i >=0 && j>=0) { if(A[i] > B[j]) A[k--] = A[i--]; else A[k--] = B[j--]; } while(j>=0) A[k--] = B[j--]; }};
python解决方案:
class Solution:# @param A a list of integers# @param m an integer, length of A# @param B a list of integers# @param n an integer, length of B# @return nothing(void)def merge(self, A, m, B, n): x=A[0:m] y=B[0:n] x.extend(y) x.sort() A[0:m+n]=x
python解决方案2:thats why we love python
def merge(self, A, m, B, n): A[m:] = B[:n] A.sort()
2 0
- LeetCode(88) Merge Sorted Array
- [leetcode 88] Merge Sorted Array
- LeetCode[88]Merge Sorted Array
- leetcode-88 Merge Sorted Array
- leetcode || 88、Merge Sorted Array
- LeetCode---(88)Merge Sorted Array
- Leetcode[88]-Merge Sorted Array
- leetcode 88 Merge Sorted Array
- leetcode[88]:Merge Sorted Array
- Leetcode #88 Merge Sorted Array
- leetcode 88: Merge Sorted Array
- leetcode: (88) Merge Sorted Array
- [Leetcode]#88 Merge Sorted Array
- 【LeetCode 88 】 Merge Sorted Array
- [leetcode 88]Merge Sorted Array
- leetcode 88:Merge Sorted Array
- 【LeetCode】88 Merge Sorted Array
- LeetCode 88:Merge Sorted Array
- jsp自定义标签
- OJ-虚函数
- 信息论的知识
- [设计模式学习笔记]FACADE外观模式
- Android开发_Fragment
- leetcode 88 Merge Sorted Array
- 设计模式之策略模式——极客学院学习笔记
- WebBrowser与IE的关系,如何设置WebBrowser工作在IE9模式下?
- gdb和gcc升级:解决编译和调试时出现gdb no symbol in current context
- PHP自动登录的实现和Cookie的安全性(UCHome的实现方法)
- 设计模式之十八:桥接模式(Bridge)
- poj 1163 The Triangle
- 实验一 离散时间序列卷积和MATLAB实现
- Labview与其他应用程序的接口设计