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。

  • 相关阅读:
    【接口测试】robotframework+接口测试
    【定位元素】定位页面元素之xpath详解及定位不到测试元素的常见问题
    【SQL-LEFT JOIN】
    【SQL-JOIN】
    【SQL-LIKE】
    【SQL-TOP】
    【SQL语句】SQL的三中种删除
    【SQL语句order by关键字
    【SQL语句】SQL select distinct语句
    【Robotframework连接oracle】robot连接oracle数据库
  • 原文地址:https://www.cnblogs.com/struggleli/p/6129693.html
Copyright © 2011-2022 走看看