LeetCode 之 Merge Sorted Array(排序)

【问题描写叙述】

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 nums1and nums2 are m and n respectively.

1.【基础知识】

归并排序思想

常见的排序主要有两种,一种是先把待排序的序列一次切割。使子序列的长度减小至1,然后。再合并。第二种是把待排序两两分组排序然后合并。

堆排序思想

详见:数据结构基础
排序 之 二叉堆实现堆排序

详址:http://blog.csdn.net/u013630349/article/details/46906969

2.【屌丝源代码】

未能给出完整实现!

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n)
	{
        if (nums1.empty())
		{
			nums1 = nums2;
			return;
		}
		if (nums2.empty()) return ;
		qkst(nums1);
		qkst(nums2);
		vector<int> myvec;
		int k=0,j=0;
		for(int i=0;i<nums2.size()+nums1.size();i++)
		{
			// 一方耗尽怎么办
			if(k>=nums2.size())
			{
				for
				nums1 = myvec;
				return ;
			}
			if(j>=nums1.size())
			{
				for
				nums1 = myvec;
				return ;
			}
			if(nums1[j]>=nums2[k])
			{
				myvec.push_back(nums2[k]);
				k++;
			}
			else
			{
				myvec.push_back(nums1[j]);
				++j;
			}

		}
		nums1 = myvec;
		return ;
    }
	int pivot(int low,int high,vector<int> &vec)
	{
		return 0;
	}
	void qkst(vector<int> &vec)
	{

	}
};

3.【AC源代码】

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
		int ia = m - 1, ib = n - 1, icur = m + n - 1;
		while(ia >= 0 && ib >= 0) {
		nums1[icur--] = nums1[ia] >= nums2[ib] ?

nums1[ia--] : nums2[ib--];
		}
		while(ib >= 0) {
			nums1[icur--] = nums2[ib--];
		}
	}
};

4.【算法思想】

1)遇到插入操作,最好用空间复杂度来解决时间复杂度问题;

2)插入操作,事实上操作为尾操作比为首操作的要简单、直接。

3)简单问题复杂化是最不值得的。目标为导向,干出来了,有了结果再说别的!

4)卡壳地方:a.审题;b.概念混淆;c.结果导向不明。

时间: 2024-08-06 07:58:41

LeetCode 之 Merge Sorted Array(排序)的相关文章

LeetCode --- 88. Merge Sorted Array

题目链接:Merge Sorted Array Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements init

LeetCode OJ - Merge Sorted Array

原地归并. 下面是AC代码: 1 public void merge(int A[], int m, int B[], int n) { 2 3 int len = A.length; 4 //first copy m elements of A to the end of A 5 for(int i=m-1,j = len-1;i>=0;i--){ 6 A[j--] = A[i]; 7 } 8 //merge the A and B 9 int startA = len - m; 10 int

LeetCode (1) Merge Sorted Array

题目: Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assume that A has enough space to hold additional elements from B. The number of elements initialized in A and B are m and n respectively. 刚开始根据归并排序写的多了一个中

【leetcode】Merge Sorted Array

Merge Sorted Array Given two sorted integer arrays A and B, merge B into A as one sorted array. Note:You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialize

leetCode 88. Merge Sorted Array 有序数组

88. Merge Sorted Array 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 n

&lt;LeetCode OJ&gt; Merge Sorted Array【88】

88. Merge Sorted Array My Submissions Question Total Accepted: 80830 Total Submissions: 274120 Difficulty: Easy Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: You may assume that nums1 has enough sp

LeetCode 88 Merge Sorted Array(合并排序数组)(*)

翻译 给定两个排序的整型数组nums1和nums2,将nums2合并到nums1成一个排序数组. 批注: 你可以假设nums1中有足够的空间(空间大于或等于m+n)来存放来自nums2的额外元素. nums1和nums2的初始空间分别是m和n. 原文 Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: You may assume that nums1

leetCode 88.Merge Sorted Array (合并排序数组) 解题思路和方法

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 init

LeetCode:Merge Sorted Array

Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m