博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
50.返回重复的数——剑指offer
阅读量:5256 次
发布时间:2019-06-14

本文共 1335 字,大约阅读时间需要 4 分钟。

题目描述

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

 

class Solution {public:    // Parameters:    //        numbers:     an array of integers    //        length:      the length of array numbers    //        duplication: (Output) the duplicated number in the array number    // Return value:       true if the input is valid, and there are some duplications in the array number    //                     otherwise false    bool duplicate(int numbers[], int length, int* duplication) {        // 空指针和空数据的情况        if (numbers == nullptr || length <= 0){            return false;        }        // 不符合题目要求的非法元素情况        for (int i = 0; i < length; ++i){            if (numbers[i] < 0 || numbers[i] > length -1)                return false;        }        // 主要部分        for (int i = 0; i < length; ++i){            while (numbers[i] != i){                if (numbers[i] == numbers[numbers[i]]){                    *duplication = numbers[i];                    return true;                }                //交换直接排序到指定位置                int temp = numbers[i];                numbers[i] = numbers[temp];                numbers[temp] = temp;            }        }        return false;    }};

 

转载于:https://www.cnblogs.com/developing/articles/11042706.html

你可能感兴趣的文章
大数据学习(2)- export、source(附带多个服务器一起启动服务器)
查看>>
Pandas matplotlib 无法显示中文 Ubuntu16.04
查看>>
hyperopt中文文档:Installation-Notes安装说明
查看>>
Python3 根据关键字爬取百度图片
查看>>
流和打印控件用法
查看>>
Python 基础之-常用模块
查看>>
选择排序的算法
查看>>
知乎原理
查看>>
[leetcode]3. Longest Substring Without Repeating Characters
查看>>
异常处理
查看>>
实现VS2010整合NUnit进行单元测试(转载)
查看>>
python 2.0 s12 day5 常用模块介绍
查看>>
Lec2-KMP实现
查看>>
MFC学习之路之多媒体 --(3) 视频会议
查看>>
k近邻模型
查看>>
Python标准库12 数学与随机数 (math包,random包)(转载)
查看>>
算法53----换钱的最小次数和方法数【动态规划】
查看>>
javascript 面向过程和面向对象
查看>>
roboguide的夹具制作
查看>>
软件测试作业4
查看>>