• 剑指offer-数组中重复的数字


    题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。

    ac代码:

     1 public class Solution {
     2     // Parameters:
     3     //    numbers:     an array of integers
     4     //    length:      the length of array numbers
     5     //    duplication: (Output) the duplicated number in the array number,length of duplication array is 1,so using duplication[0] = ? in implementation;
     6     //                  Here duplication like pointor in C/C++, duplication[0] equal *duplication in C/C++
     7     //    这里要特别注意~返回任意重复的一个,赋值duplication[0]
     8     // Return value:       true if the input is valid, and there are some duplications in the array number
     9     //                     otherwise false
    10     public boolean duplicate(int numbers[],int length,int [] duplication) {
    11                 int s[]=new int[length];
    12         for(int i=0;i<length;i++){
    13             s[numbers[i]]++;
    14             if(s[numbers[i]]>1){
    15                 duplication[0]=numbers[i];
    16                 return true;
    17             }
    18         }
    19         return false;
    20     }
    21 }
  • 相关阅读:
    Vim配置IDE开发环境
    Win7任务计划自由预设系统定时自动关机
    awk中文手册
    awk简明教程
    Linux之mount命令详解
    VirtualBox内Linux系统与Windows共享文件夹
    堆排序详解
    int main(int argc,char* argv[])参数详解
    GDB调试详解
    VirtualBox中虚拟Ubuntu添加新的虚拟硬盘
  • 原文地址:https://www.cnblogs.com/llsq/p/8809858.html
Copyright © 2020-2023  润新知