zoukankan      html  css  js  c++  java
  • Java算法题删除有序数组中的重复元素

    题目:编写一个方法,删除有序数组中的重复元素。例如:数组:1,2,2,4,5,5,5,8,9,9,10。删除重复元素后:1,2,4,5,8,9,10。

    RemoveRepeatItem.java

     1 public class RemoveRepeatItem {
     2     /**
     3      * 单元测试
     4      */
     5     public static void main(String[] args){
     6         int[] sortArr = { 1,3,3,4,5,5,5,7,8,9,9,9 };
     7         int[] arr = removeRepeat(sortArr);
     8         for(int item : arr){
     9             System.out.print(item + " ");
    10         }
    11     }
    12     
    13     /**
    14      * 删除有序数组中重复元素
    15      */
    16     public static int[] removeRepeat(int[] a){
    17         int N = a.length;
    18         int[] arr = new int[N];
    19         for(int i = 0;i < N; i++){
    20             arr[i] = a[i]; //保护性复制
    21         }
    22         int len = N;
    23         for(int i = 0; i < len; i++){
    24             //记录重复元素个数
    25             int repeatCnt = 0;
    26             for(int j = i + 1;j < len;j++){
    27                 if(arr[j] == arr[i]){
    28                     //如果重复,repeatCnt加1
    29                     repeatCnt++;
    30                 } else if(arr[j] > arr[i]){
    31                     //及时跳出循环
    32                     break;
    33                 }
    34             }
    35             //如果重复,开始移动元素
    36             if(repeatCnt > 0){
    37                 for(int k = i + repeatCnt + 1; k < len;k++){
    38                     arr[k - repeatCnt] = arr[k];
    39                 }
    40                 //数组长度减小
    41                 len = len - repeatCnt;
    42             } 
    43         }
    44         
    45         //结果数组
    46         int[] result = new int[len];
    47         for(int i = 0;i < len; i++){
    48             result[i] = arr[i];
    49         }
    50         
    51         return result;
    52     }
    53 }
  • 相关阅读:
    小程序云开发学习笔记
    188.gulp创建任务
    187.gulp介绍和安装
    186.npm使用详解
    185.nvm和node.js环境配置
    171.补充-在模板中添加权限控制
    170.分组-group、permission、user的操作
    内置中间件CommonMiddleware
    Django内置的中间件
    144.中间件的原理和定义方式详解
  • 原文地址:https://www.cnblogs.com/dongliyang/p/2994583.html
Copyright © 2011-2022 走看看