【刷题之路】重复值判断
来源:互联网 发布:caxa自动编程与训练 编辑:程序博客网 时间:2024/06/11 18:58
请设计一个高效算法,判断数组中是否有重复值。必须保证额外空间复杂度为O(1)
通常来说判断重复值,比较有效的方法是先排序。保证额外空间复杂度为1,则选择堆排序较为合适。堆排序出现过多次,不再详述
class Checker {
public:
bool checkDuplicate(vector<int> a, int n) {
// write code here
int i;
maxheap(a,n);
for(i=n-1;i>=0;i--){
swap(a[0],a[i]);
fixdown(a,0,i);
}
for(i=0;i<n-1;i++){
if(a[i]==a[i+1]) return true;
}
return false;
}
void maxheap(vector<int> &a,int n){
int i;
for(i=n/2-1;i>=0;i--){
fixdown(a,i,n-1);
}
}
void fixdown(vector<int> &a,int i,int n){
int j;
while(2*i+1<n){
if(2*i+2>n-1) j=2*i+1;
else if(a[2*i+1]<a[2*i+2] && i*2+2< n) j=2*i+2;
else j=2*i+1;
if(a[i]<a[j]){
swap(a[i],a[j]);
i=j;
}
else break;
}
}
- 【刷题之路】重复值判断
- 重复值判断练习
- 重复值判断练习题
- 原地重复值判断
- 重复值判断
- 重复值判断
- ADO.NET之判断重复记录
- 判断dataGridView是否重复值
- 【刷题之路】数组中重复的数字
- 判断数组重复的值 和重复个数
- HashMap怎样判断值是否重复
- sql server判断是否重复值
- 如何判断JavaScript 数组含有重复值
- js判断数组是否有重复值
- String[] 数组判断值不能重复
- LeetCode OJ 之 Contains Duplicate (包含重复判断)
- python编程之判断字符串n次重复
- 如何判断主键重复
- app包中的fragment和v4包中的fragment的使用的区别
- 高并发量网站的解决方案
- hadoop stream 参数详解
- Bootstrap多媒体对象
- 从PHP到Node,聊一聊淘宝首页背后的技术
- 【刷题之路】重复值判断
- SSL VPN 安全解决方案
- Android drawable&mipmap 资源检索顺序 最佳资源存放目录
- View中的draw和onDraw的区别
- 当前工作是你想要的吗?
- 安卓之MediaRecorder(多媒体录制)
- 一.Mac下搭建appium环境
- ASP.NET页面优化,提高载入速度方法大全-压缩页面
- RedHat/CentOS发行版本号及内核版本号对照表