zoukankan      html  css  js  c++  java
  • Array Two(2)

    (3)Remove Duplicates from Sorted Array

    最优解代码如下:【注意最标准的代码风格!!!

     1 public class Solution {
     2     public int removeDuplicates(int[] nums) {
     3         if (nums == null || nums.length ==  0) {
     4             return 0;
     5         }
     6         
     7         int index = 0;
     8         for (int i = 0; i < nums.length; i++) {
     9             if (nums[i] != nums[index]) {
    10                 nums[++index] = nums[i];
    11             }
    12         }
    13         return index + 1;
    14        
    15     }
    16 }
    View Code

    解题思路:使用index记住第一个元素的位置,后面元素依次跟它比较,不相同的时候将不相同的元素赋给index+1的位置,然后后面元素继续跟index+1比较。。。这样index的值加1就是返回不相同元素数组的长度。

    (4)Merge Sorted Array

     1 public class Solution {
     2     public void merge(int[] nums1, int m, int[] nums2, int n) {
     3        int i = m-1, j = n-1, index = m + n - 1;
     4        while (i >= 0 && j >= 0) {
     5            if (nums1[i] > nums2[j]) {
     6                nums1[index--] = nums1[i--];
     7            }
     8            else {
     9                nums1[index--] = nums2[j--];
    10            }
    11        }
    12        while (i >= 0) {
    13            nums1[index--] = nums1[i--];
    14        }
    15        while (j >= 0) {
    16            nums1[index--] = nums2[j--];
    17        }
    18     }
    19 }
    View Code

    解题思路:从nums1数组的最高位即 m+n位依次向下添加元素。index是合并后数组的位置。两个数组的最高位开始比较,哪个数值大就哪个放在index位,然后index减1直到其中一个数组放完,另一个数组余下的一次放好就OK。

  • 相关阅读:
    eclipse快捷键
    ideaIU-2017.3.2版本的免费安装以及2020版本破解
    并发相关问题以及java基础知识
    飞秋软件-局域网内互传
    视频解析网站
    bzoj2458: [BeiJing2011]最小三角形
    bzoj3170: [Tjoi2013]松鼠聚会
    bzoj5056:OI游戏
    dtoj#4224. 小L的占卜
    dtoj#4222. 小b爱旅行(travel)
  • 原文地址:https://www.cnblogs.com/struggleli/p/6129693.html
Copyright © 2011-2022 走看看