剑指Offer——n个0到n-1的数里重复的数字
2016-04-08 20:36
447 查看
主要思路:
一般:排序后查找;
常用:构造哈希表;
最优:交换查重;
以下代码为交换查重的代码,在vs2015中调试运行无误。
一般:排序后查找;
常用:构造哈希表;
最优:交换查重;
以下代码为交换查重的代码,在vs2015中调试运行无误。
#include "stdafx.h" #include<iostream> using namespace std; bool duplicate(int data[],int length, int &duplication) { if(NULL == data || length < 2) return false; for (int i = 0;i<length;++i) { if(data[i]<0 || data[i]>length-1) return false; } for (int i = 0;i<length;++i) { while(data[i] != i) { if(data[i] == data[data[i]]) { duplication = data[i]; return true; } int temp = data[i]; data[i] = data[temp]; data[temp] = temp; } } return false; } int main() { const int length = 5; int input[length] = {1, 2 ,3 ,4, 4}; int result = 0; if(duplicate(input,length,result)) { cout<<"\n the same number is: \n"<<result; } else { cout<<"Invalid input!"; } while (1); }
相关文章推荐
- Bootstrap学习笔记—学习制作轮播
- Angularjs学习笔记5_scope和$rootScope
- 在幼儿园管理系统中使用BootStrap的时候,如何快速找到合适的图标!
- JS中三种主要方法(函数定义)类别理解 —(JS面向对象&原型)
- 2-jQuery - AJAX load() 方法【进阶篇】
- Javascript诞生记-C和Self语言的产物
- JS函数名加括号和不加括号的区别
- html中的表格 bootstrap-table
- 浅谈inode
- javascript中Uint8Array类型的subarray方法陷阱
- Thrift,protobuf,json,xml,binary之间的对比
- css3 设计礼品盒
- 前端知识学习之路
- Ubuntu下cuda和caffe等的安装
- 前端小技巧总结 v1.0.0
- JavaScript location对象、Navigator对象、Screen对象简介
- [转] 使用简单的JavaScript,我们为什么应该抵制ES6
- 关于 chartjs插件的用法
- JSON详解
- JavaScript History对象