zoukankan      html  css  js  c++  java
  • 1.2找数组中唯一成对的那个数

    题目介绍

    1-1000这1000个数放在含有1001个元素的数组中,只有唯一的一个元素重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助空间,能否实现?

    题目解法

    思路

    题目的意思是有一个数组,里面的数字是唯一的11000,但是其中有两个数字重复,所以是1001的数组,假设这个重复的数字是K,用数(1K~1000)^ 数组(1KK~1001)就得到 K。
    KK=0,K0=A

    核心代码

    int N=1001;
    int x1=0;
    //数(1~K~1000)^ 数组(1~K~K~1001)
    for(int i=1;i<=N-1;i++){
    	x1=(x1^i);
    }
    for(int i=0;i<N;i++){
    	x1=(x1^arr[i]);
    }
    

    完整代码

    #include<iostream>
    #include<cstdlib>
    #include<time.h>
    using namespace std;
    int main() {
    	int N=1001;
    	int arr[N];
    	for(int i=0; i<N-1; i++) {
    		arr[i]=i+1;
    	}
    	srand((unsigned)time(NULL));//设置随机数种子
    	arr[N-1] = rand()%(N-1)+1;//产生[1-1000]的随机数,rand()函数产生[0,RAND_MAX]的随机数
    	int result=0;
    	for(int i=1; i<=N-1; i++) { //将[1,1000]共1000个数进行异或
    		result^=i;
    	}
    	for(int i=0; i<N; i++) { //再与题意中的数组每个元素进行异或
    		result^=arr[i];
    	}
    	printf("%d",result);
    	return 0;
    }
    
  • 相关阅读:
    Python学习摘要201802
    机器学习-梯度下降参数调优小结
    用尽洪荒之力学习Flask源码
    Flask类的属性和方法大全
    Flask第三方工具组件介绍
    Flask自带的常用组件介绍
    Centos下部署Flask
    Python Tips阅读摘要
    web程序设计关于我们
    软工实践总结
  • 原文地址:https://www.cnblogs.com/tqing/p/12236821.html
Copyright © 2011-2022 走看看