您的位置:首页 > 其它

LeetCode088 Merge Sorted Array

2017-04-22 22:02 351 查看
详细见:leetcode.com/problems/merge-sorted-array

Java Solution:
github

package leetcode;

/*
* Given two sorted integer arrays nums1 and nums2,
* merge nums2 into nums1 as one sorted array.

Note:
You may assume that nums1 has enough space
(size that is greater or equal to m + n)
to hold additional elements from nums2.
The number of elements initialized in nums1 and nums2
are m and n respectively.
*/

public class P088_MergeSortedArray {
public static void main(String[] args) {

}
/*
* 1 ms
* 7.98%
*/
static class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
if (nums1 == null || nums2 == null || nums2.length == 0 || n == 0)
return;
int eni1 = m - 1, eni2 = n - 1, eni3 = m + n - 1;
while (eni1 != -1 && eni2 != -1)
nums1[eni3 --] = nums1[eni1] < nums2[eni2] ? nums2[eni2 --] : nums1[eni1 --];
if (eni1 != -1 && eni3 != eni1) {
while (eni1 != -1)
nums1[eni3 --] = nums1[eni1 --];
}
if (eni2 != -1) {
while (eni2 != -1)
nums1[eni3 --] = nums2[eni2 --];
}
}
}
}


C Solution:
github

/*
url: leetcode.com/problems/merge-sorted-array
AC 3ms 21.00%
*/

void merge(int* n1, int n1n, int* n2, int n2n) {
int i1 = n1n -1, i2 = n2n - 1, i = n1n+n2n-1;
while (i1 > -1 && i2 > -1) {
if (n1[i1] > n2[i2]) {
n1[i --] = n1[i1 --];
} else {
n1[i --] = n2[i2 --];
}
}
while (i1 > -1) n1[i --] = n1[i1 --];
while (i2 > -1) n1[i --] = n2[i2 --];
}

Python Solution:
github

#coding=utf-8

'''
url: leetcode.com/problems/merge-sorted-array
@author: zxwtry
@email: zxwtry@qq.com
@date: 2017年4月22日
@details: Solution: 52ms 46.81%
'''

class Solution(object):
def merge(self, n1, m, n2, n):
"""
:type n1: List[int]
:type m: int
:type n2: List[int]
:type n: int
:rtype: void Do not return anything, modify n1 in-place instead.
"""
i1, i2, i = m-1, n-1, m+n-1
while i1 > -1 and i2 > -1:
if n1[i1] > n2[i2]:
n1[i] = n1[i1]
i, i1 = i-1, i1-1
else:
n1[i] = n2[i2]
i, i2 = i-1, i2-1
while i1 > -1:
n1[i] = n1[i1]
i, i1 = i-1, i1-1
while i2 > -1:
n1[i] = n2[i2]
i, i2 = i-1, i2-1

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode