首页 > 其他 > 详细

88. Merge Sorted Array

时间:2016-08-17 12:09:39      阅读:183      评论:0      收藏:0      [点我收藏+]

这道题的trick在于如果从小到大排列的话,涉及到数组从左向右移动的问题。 所以这道题从大到小进行排序。

另外,这道题中该学习到的coding style,当需要处理2个数组/list时候 用

      while (a != null && b != null) {}

      while (a != null) {}

      while (b != null) {}

这样3个while循环

 1 public class Solution {
 2     public void merge(int[] nums1, int m, int[] nums2, int n) {
 3         if (nums1 == null || nums2 == null) {
 4             return;
 5         }
 6         if (n == 0) {
 7             return;
 8         }
 9         int i = m - 1;
10         int j = n - 1;
11         int index = m + n -1;
12         while (i != -1 && j != -1) {
13             if (nums1[i] > nums2[j]) {
14                 nums1[index--] = nums1[i--];//注意 这里可以直接在数字角标内部进行自减!
16             } else {
17                 nums1[index--] = nums2[j--];
19             }
21         }
22         while (j != -1) {
23             nums1[index--] = nums2[j--];
25         }
26     }
27 }

 

88. Merge Sorted Array

原文:http://www.cnblogs.com/jiangchen/p/5779247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!