[剑指offer]数组中重复的数字
2016-05-15 18:06
471 查看
题目描述
在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。分析:虽然也AC了,但是没仔细看题,可以利用题目已有条件做到更简单的。我的想法是用一个容器保存已经出现的数字,如果能在容器里找到,那么把他加到重复数字数组里。
代码:
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(length<2) return false; unordered_set<int> s; int k=0; for(int i=0;i<length;i++){ if(s.find(numbers[i])!=s.end()){ duplication[k]=numbers[i]; k++; }else{ s.insert(numbers[i]); } } if(k!=0) return true; return false; } };
相关文章推荐
- CSS2.0下1行2列,左侧固定右侧自适应布局,兼容所有浏览器。[学习笔记]
- 使用脚本排除bug疑问
- js学习三-日期Date
- CSS应用:线性渐变
- 把JavaScript的变量赋值给php的变量
- html
- 论文笔记《Multi-scale Orderless Pooling of Deep Convolutional Activation Features》
- 当图片验证码遇上JSP
- 当图片验证码遇上JSP
- fastjson使用示例
- cookie读写JS
- <css3>border
- JSF可以直接以方法作为属性值
- javascript表单事件处理方法详解
- jQuery与AJAX----jQuery中ajax接口
- jquery-uploadfile的使用(多文件异步上传)
- 基于jquery实现ajax无刷新评论
- JavaScript中的return、return true及return false
- jquery的延迟加载插件Lazy Load Plugin for jQuery
- sublime 编译提示js