题目

数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。
时间复杂度要求:O(N)

方法1:

0~n的和减去数组nums的和

#include<stdio.h>
int missnumber(int a[], int sz)
{int i=0;int sum1 = 0;int sum2 = 0;int num = 0;for (i = 0; i < sz; i++){sum1 = sum1 + a[i];}for (i = 0; i <=sz + 1; i++){sum2 = sum2 + i;}num = sum2 - sum1;return num;
}
int main()
{int a[] = { 1, 3, 4, 5 };int sz = sizeof(a) / sizeof(a[0]);int num=missnumber(a,sz);printf("%d", num);return 0;
}

方法2

时间复杂度:O(N)

x=0,x和0 ~ n的数异或得到0 ~ n数,0 ~ n的数再和0 ~ n中缺少一个数的数组进行异或,则可以找到那个缺少的数字

方法3- -时间复杂度不符合

数组nums包含从0到n的所有整数,但其中缺了一个。请找出那个缺失的整数。相关推荐

  1. 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。...

    给定两个字符串 s 和 t,它们只包含小写字母.字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母.请找出在 t 中被添加的字母. 示例: 输入: s = "abcd" ...

  2. 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径, 使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。

    #include <iostream> #include <vector> using namespace std;/* 给定一个包含非负整数的 m x n 网格,请找出一条从 ...

  3. 写一个函数找出一个整数数组中,第二大的数

    题目:写一个函数找出一个整数数组中,第二大的数. 算法分析: 1)假设数组中的前两个元素就是最大和第二大,即max和smax: 2)从数组的第二个元素开始遍历数组,当有元素大于max的时候,将max赋 ...

  4. 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 编写一个函数找出这两个只出现一次的数字。

    一个数组中只有两个数字是出现一次,其他所有数字都出现了两次.编写一个函数找出这两个只出现一次的数字. 1.代码编写 2.结果 1.代码编写 代码如下(示例): #define _CRT_SECURE_ ...

  5. 找不同(给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。)

    给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. 示例: 输入: s = "abcd&quo ...

  6. 137 Single Number II 数组中除了一个数外,其他的数都出现了三次,找出这个只出现一次的数...

    给定一个整型数组,除了一个元素只出现一次外,其余每个元素都出现了三次.求出那个只出现一次的数. 注意: 你的算法应该具有线性的时间复杂度.你能否不使用额外的内存来实现? 详见:https://leet ...

  7. 编写一个程序,找出数组中元素的最大值,要求用到成员函数。

    #include<iostream> using namespace std; class Sum {private:int a[10];//定义一个数组; int sum;public: ...

  8. Java Exer0908 从键盘输入皆为正整数的数组元素,数组长度不确定,请找出数组中重复的数字并输出。

    import java.util.Scanner; public class Exer0908 {public static void main(String[] args) {System.out. ...

  9. golang 数组组合成最小的整数_golang数组-----寻找数组中缺失的整数方法

    问题:由n-1个整数组成的未排序数组,元素都是1~n的不同整数,找出其中缺失的整数 方法一: 思路:是原数组的和 减去 丢失元素后的数组的和,就得到丢失的元素了 代码如下: package main ...

最新文章

  1. Keras训练神经网络进行分类并进行交叉验证(Cross Validation)
  2. WP7多国语言支持 from:http://blog.csdn.net/lee353086/article/details/6260676
  3. Win7 64位的SSDTHOOK(1)---SSDT表的寻找
  4. Maven教程(3)--Maven导入工程常见问题(编码、MavenArchiver、Lifecycle Mapping、maven install 没有反应)...
  5. 备忘--Sinfors 设备出厂IP
  6. Tabs vs Spaces:如何在Google,Twitter,Mozilla和Pied Piper上编写Java
  7. 【HihoCoder - 1269】 优化延迟 (优先队列+二分优化)
  8. C/C++常量数据类型
  9. VMware三种工作模式
  10. 远程登陆速达E3PRO服务器出现share violation错误的解决方法.
  11. Redis文档链接(含官方中文)
  12. 高效能人士的七个习惯读后感与总结概括-(第三章)
  13. Latex下划线问题
  14. JSP页面调用log4j写日志文件
  15. Android 6.0(棉花糖)新特性
  16. Invalid MEX-file 'C:\Users\zs\Desktop\CSR-DCF\mex\mex_extractforeground.mexw64': 找不到指定模块
  17. SqlServer数据库应用
  18. Python里的%s和%d是什么意思
  19. 攻略 | 香港13个适合周末去的绝美小岛
  20. bim webgl 模型 轻量化_数字化交付模型轻量化技术研究

热门文章

  1. android红包功能程序,微信小程序实现发红包功能
  2. 八戒转世投胎竟然是Java设计模式:桥接模式
  3. 新的征程:C语言学习
  4. linux命令解释pwd,Linux中pwd命令有什么用
  5. 平安大视野解读主动健康:以运动改变生命轨迹,以名医权益为健康保驾护航
  6. 元素偏移量offset系列及e.pageX(e.pageY)
  7. 性能测试接口请求超时问题_如何获得更好的性能:超时的情况
  8. 方法是学习和进步的捷径
  9. 男孩子学机电一体化好还是计算机好,男生学机电一体化专业好吗 好找工作吗...
  10. yolov6训练自己的数据记录+yolov5对比测试