zoukankan      html  css  js  c++  java
  • 找出数组中重复的数字--剑指offer

     本道题是较为简单的数组问题,只需要找到重复的数字,并不是找到所有的数字。一开始想着遍历完所有的数组元素,但会出现超出时间设置。

     1 int findRepeatNumber(int* nums, int numsSize){
     2     int i,j,k=0;
     3     int s[numsSize];
     4 //    qsort(nums,numsSize,sizeof(nums[0]),cmp);
     5     for(i=0;i<numsSize;i++)
     6     {
     7         for(j=i+1;j<numsSize;j++)
     8         {
     9             if(nums[i]==nums[j])
    10             {
    11               s[k]=nums[i];
    12               k++;
    13             }
    14         }
    15     }
    16     /*
    17         j=i+1;
    18         if(nums[i]==nums[j])
    19         {
    20             s=nums[i];
    21             break;
    22         }
    23     
    24     }
    25     */
    26     int n=rand()%k;
    27     return s[n];
    28 }

     后来决定对数组进行排序,由于题中要求的是输出任意一个重复元素。因此,只要找到排序后相邻的相同的元素即可。代码如下:

     1 //#define MAX 100000
     2 int cmp(const void *a,const void *b)
     3 {
     4     return *(int *)a-*(int *)b;
     5 }
     6 int findRepeatNumber(int* nums, int numsSize){
     7     int i,j,k=0;
     8     int s;
     9     qsort(nums,numsSize,sizeof(nums[0]),cmp);
    10     for(i=0;i<numsSize-1;i++)
    11     {
    12         j=i+1;
    13         if(nums[i]==nums[j])
    14         {
    15             s=nums[i];
    16             break;
    17         }
    18     
    19     }
    20  //   int n=rand()%k;
    21     return s;
    22 }
  • 相关阅读:
    array with objects sort
    Vue组件之区域滚动
    ajax跨域请求问题总结
    常见contentType
    Sublime Text 3实用快捷键大全
    具有层级关系的扁平化数组转化成树形结构数组
    阿里云地图选择器
    前端解析二进制文件流并下载
    tool.js日常工具方法
    git操作
  • 原文地址:https://www.cnblogs.com/sbb-first-blog/p/13264987.html
Copyright © 2011-2022 走看看