<span style="font-size:18px;">/*题目:
给定一个无序的整数数组,怎么找到第一个大于0,并且不在此数组的整数。
比如 [1,2,0] 返回 3, [3,4,-1,1] 返回 2。最好能 O(1) 空间和 O(n) 时间。*/#include<stdio.h>
#include<stdlib.h>//思路:/*数组A[n]长度为n。因为要求寻找的数必须大于0.所以假定有一列数 [1...n]那么A[n]中的数和[1...n]有如下几种关系逐一查找,看[1...n]中的数在A[n]中是否都存在。1.[1...n]里的元素,A[n]中都有,那么这两组数重合了,因此,既>0,又不属于A[n]的数,为n+1;2.若不重合,[1...n]中哪个元素先没有的,答案就是此数。但是二分查找需要有序表。得先排序二分查找的话,查找n个元素需要O(nlogn)*///二分查找函数
bool binserch(int x, int *a, int n)
{int low=0;//保留域的左下标int high=n-1;//保留域的右下标int mid;//保留域的中间下标while (low<=high){mid=(high+low)/2;if(x>a[mid]){low=mid+1;}else if(x<a[mid]){high=mid-1;}else{return  true;}}return false;
}//堆排序函数
void adjustHeap(int *A,int len,int i)
{int l,r,large,temp;l=2*i+1;r=2*i+2;large=i;if(l<len){if(A[l]>A[i]){large=l;}}if(r<len){if(A[r]>A[large]){large=r;}}if(large!=i){temp=A[large];A[large]=A[i];A[i]=temp;adjustHeap(A,len,large);}
}void buildHeap(int *A,int len)
{int i;for(i=len/2-1;i>=0;i--)adjustHeap(A,len,i);
}void HeapSort(int *A,int len)
{int i,temp;buildHeap(A,len);for(i=len;i>1;i--){temp=A[0];A[0]=A[i-1];A[i-1]=temp;buildHeap(A,i-1);}printf("\n");
}void lookFTLose(int *a,int array_len)
{int i;//计数器for(i=1;i<=array_len;i++){if(!binserch(i,a,array_len)){printf("%d\n",i);return;}}printf("%d\n",array_len+1);
}//main函数
int main()
{int i;//计数器int n;//数组大小int *a;//待处理数据int res;//存储结果;while(scanf("%d",&n)!=EOF){a=(int *)malloc(n*sizeof(int));//为动态数组a分配空间//输入数据for(i=0;i<n;i++){scanf("%d",&a[i]);}HeapSort(a,n);lookFTLose(a,n);}}</span>

算法题目:寻找迷失的数字。相关推荐

  1. 算法题目-猜数字游戏

    算法题目: 设计一个猜数字游戏的java程序,数字为50到150之间的一个整数,由程序随机生成,程序使用者从键盘输入. 如果大了,提示"猜大了" 如果小了,提示"猜小了& ...

  2. 算法:数组中寻找两个数字的和等于固定值

    数组中寻找两个数字的和等于固定值 下面为实现思路及代码 codes. // 思路 // 先进后出 两端逼近 // for example x + y = z 前置条件:z的值固定 // 故x固定 则y ...

  3. 数字游戏 -- 寻找缺失的数字

    算法专题导航页面 [算法专题 - 应用场景] <数字游戏 – 寻找缺失的数字> <数字游戏 – 微信红包> <寻找两个排序数组(长度相等)的上中位数> [题目]   ...

  4. 算法④:把字符串变成数字

    算法④:把字符串变成数字 ​ 题目链接:https://leetcode-cn.com/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/ ...

  5. java 完美洗牌,(2)数组相关算法题目

    数组是最简单的数据结构,占据连续内存并且按顺序存储. 以下是与数组有关的算法题目. (1)查询数组中重复数字 算法思路:(1)利用hash表,没有便放进去,有就返回(Java中HashMap存数字都是 ...

  6. 字节跳动面试算法题目以及答案

    题目来源于牛客 https://www.nowcoder.com/discuss/455003?type=post&order=time&pos=&page=2&cha ...

  7. 数据结构与算法题目总结

    文章目录 1.输入输出控制 2.字符串控制 3.排序 4.数字处理类 5.模拟输出类 6.其他 1.输入输出控制 大量输入输出导致超时,可以试试把 cin 和 cout 换成 scanf 和 prin ...

  8. Python - 寻找最大矩形 数字版矩阵版

    一.引言 给定一个仅包含 0 和 1 .大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积. 例如给定如上 4 x 5 的 0-1 矩阵,由1组成的最大矩形面积 ...

  9. leetcode的回溯算法题目用这个模板解题,一网打尽,so easy!!!

    " 这是本人第 46 篇原创博文,每周至少两篇更新,谢谢赏脸阅读文章 这一篇文章来讲解一下如何做leetcode回溯算法题目,这一段时间我把leetcode上面的回溯算法的题目都刷了个遍,发 ...

最新文章

  1. 三种 MySQL 大表优化方案
  2. G - MPI Maelstrom POJ - 1502
  3. 使用xshell SSH远程连接 linux
  4. angular 如何在index html 页面包含子页面_Webpack4.0各个击破(1)html篇
  5. uva455periodic strings周期串
  6. 中if判断中文_当Excel表格中的条件判断超过8个,用IF函数不容易实现怎么办?...
  7. zend解释php过程,Zend framework处理一个http请求的流程分析
  8. git rebase 后找回消失的commit
  9. 删除含有关键词的文件_AweEraser——macOS Catalina最佳的文件粉碎机
  10. jar注册成服务器,Spring Boot项目生成jar包,并在windows服务器中注册成服务,开机启动(示例代码)...
  11. python json loads 中文乱码_python实现智能语音天气预报
  12. 十八年开发经验分享(一)学习篇
  13. WPF入门教程系列一——基础
  14. (附源码)SSM学科竞赛赛场安排系统JAVA计算机毕业设计项目
  15. 怎么查服务器域名 mac系统,苹果6s肿么查看服务器域名
  16. nyoj-239 月老的难题 (二分图匹配—匈牙利算法 网络流—Dinic算法)
  17. 星巴克2022新年限定特饮;丹麦蓝罐曲奇虎年春节礼盒;尊尼获加、督威啤酒等虎年限定 | 食品饮料新品...
  18. Oracle优化 latch free问题Result Cache:RC Latch引起数据库缓慢
  19. SonTek -Argonaut-SL500流量计适配调试说明
  20. 升级打怪小游戏(面向对象)

热门文章

  1. 科大奥瑞物理实验——声速的测量
  2. 职场干货:身为程序员的你,用了多长时间学习和研究,才达到某一领域技术专家的水平?
  3. 游戏美术如何选型 —— 访莉莉丝技术美术总监李靖
  4. 写php需要什么软件?
  5. 希望C语言能够给我铺路
  6. python Note II
  7. 公网与私网的区别 ?如何进行通信?(NAT技术,端口映射技术,)
  8. 字符串copy函数技术推演
  9. TOP30排行榜 第04期:花5万元刷榜能上No.1
  10. mysql注入扫描网站漏洞工具_sql注入点扫描工具下载-PHP+MYSQL网站注入扫描工具免费版 - 维维软件园...