LeetCode- Add to List 88. Merge Sorted Array
2017-07-06 22:29
337 查看
题目
给定两个排过序的数组nums1和nums2,nums1数组中的有效元素长度为m,其总长度为m+n;nums2数组中有效元素长度为n,现将两个数组合并到nums1中,并且数组中的元素按升序排列。解题思路
首先将nums1中前m个有效的元素赋值到另一个数组中tmpArray,然后tmpArray和nums2中的元素从0开始逐个比较,将较小的元素放到nums1中。这种解题方式需要额外长度的数组。另一种方式不需要额外长度的数组,nums1数组从m-1和nums2数组从n-1开始比较,将大的元素插入到nums1最后的位置。
代码
public class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { if(nums1==null || nums2==null || nums2.length==0) return; //第二种解题思路 int i=m-1; int j=n-1; int k=m+n-1; while(i>=0 && j>=0){ if(nums1[i]>nums2[j]){ nums1[k--]=nums1[i--]; }else{ nums1[k--]=nums2[j--]; } } if(i>0){ while(i>=0){ nums1[k--]=nums1[i--]; } }else{ while(j>=0){ nums1[k--]=nums2[j--]; } } /*//第一种解题思路 int[] tmpArray=new int[m]; System.arraycopy(nums1,0,tmpArray,0,m);//赋值数组 int i=0; int j=0; int k=0; for(;k<m+n && i<m && j<n;k++){ int tem1=tmpArray[i]; int tem2=nums2[j]; if(tem1>tem2){ nums1[k]=tem2; j++; }else{ nums1[k]=tem1; i++; } } if(i<m){ for(;k<m+n;k++){ nums1[k]=tmpArray[i]; i++; } }else if(j<n){ for(;k<m+n;k++){ nums1[k]=nums2[j]; j++; } } */ } }
相关文章推荐
- LeetCode 25 Reverse Nodes in k-Group Add to List (划分list为k组)
- LeetCode- Add to List 84. Largest Rectangle in Histogram
- Leetcode--Add to List 371. Sum of Two Integers
- LeetCode-Add to List 494. Target Sum
- 【LeetCode】Add to List 606. Construct String from Binary Tree
- 【LeetCode】417. Pacific Atlantic Water Flow Add to List
- LeetCode - Add to List 557. Reverse Words in a String III
- [leetcode] Add to List 403. Frog Jump
- [leetcode] 64. Minimum Path Sum Add to List
- Leetcode--Add to List 215. Kth Largest Element in an Array
- [leetcode] Add to List 169. Majority Element
- leetcode- Add to List 458. Poor Pigs
- LeetCode 143 Reorder List Add to List
- leetcode 21. Merge Two Sorted Lists Add to List
- leetcode_ Add to List 121. Best Time to Buy and Sell Stock
- Leetcode--Add to List 201. Bitwise AND of Numbers Range
- [Leetcode] 2.Add Two Numbers(List To Long,模拟)
- leetCode_Add to List 206. Reverse Linked List
- 【LeetCode24】. Swap Nodes in Pairs Add to List
- Leetcode--Add to List 374. Guess Number Higher or Lower