缺失数字

  • 题目
  • 大致思路
  • 代码实现

题目

大致思路

  1. 第一,将所有的数组加起来,再把0-(length-1)的数字和求出来,两个差值即为目标值。
  2. 第二:根据一个数 连续 ^ 同一个数 两次 得到的还是这个数。让0-(length-1)的数字和数组的每一个数相异或,最后得到的数字就是那个缺失的数字。
  3. 排序,通过2分法再找那个缺失的数字

代码实现

package com.immunize.leetcode.missingNumber;import java.util.Arrays;public class missingNumber {// 异或法public static int missingNumber(int[] nums) {int dst = nums.length;for (int i = 0; i < nums.length; i++) {dst ^= nums[i] ^ i;}return dst;}// 根据差值计算。public static int missingNumber1(int[] nums) {int sum0 = nums.length * (nums.length + 1) / 2;int sum = 0;for (int i = 0; i < nums.length; i++) {sum += nums[i];}int dst = sum0 - sum;return dst;}public static int missingNumber2(int[] nums) {Arrays.sort(nums);int dst = 0;int low = 0;int high = nums.length;while (low <= high) {int mid = (low + high) / 2;if (nums[mid] > mid) {high = mid - 1;} else {low = mid + 1;}}return low;}public static void main(String[] args) {int[] nums = { 0, 1, 8, 3, 4, 6, 5, 9, 2 };System.out.println(missingNumber(nums));System.out.println(missingNumber1(nums));System.out.println(missingNumber2(nums));}}

20190901:(leetcode习题)缺失数字相关推荐

  1. Leetcode 268. 缺失数字 解题思路及C++实现

    方法一:利用求和公式 1+2+...+n = n*(n+1)/2 解题思路: 利用求和公式 1+2+...+n = n*(n+1)/2,首先求出nums的size,就知道这n个数的和了,然后遍历数组n ...

  2. LeetCode 268 缺失数字

    原题链接 标签: 数组  排序 解题思路: 1.     先进行排序 2.     0--N之间只有一个数没有出现,并且这是数组缺失的数字等于所在数组下标 3.      利用双指针,找到相差1的两个 ...

  3. LeetCode 268. 缺失数字

    文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个包含 0, 1, 2, -, n 中 n 个数的序列,找出 0 - n 中没有出现在序列中的那个数. 示例 1:输入: [3,0,1] 输 ...

  4. LeetCode每日一题: 缺失数字(No.268)

    题目:缺失数字 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数. 复制代码 示例: 输入: [3,0,1] 输出: 2输入: [9,6 ...

  5. 每天Leetcode 刷题 初级算法篇-缺失数字

    题目要求: 缺失数字 力扣题解: 代码 import java.util.Arrays;/*** @program: mydemo* @description: 缺失数字* @author: Mr.z ...

  6. 牛客题霸 [ 缺失数字] C++题解/答案

    牛客题霸 [ 缺失数字] C++题解/答案 题目描述 从0,1,2,-,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小. 题解: 我们可以用map来标记已出现过的数字 因 ...

  7. java从数组查找指定整数_如何在Java中使用重复项查找整数数组中的K个缺失数字?...

    java从数组查找指定整数 自从我讨论任何编码或算法面试问题以来已经有很长时间了,因此我想重新考虑一种最流行的基于数组的编码问题,即在给定数组中查找缺失的数字. 在进行编程工作面试之前,您可能已经听说 ...

  8. 如何在Java中使用重复项查找整数数组中的K个缺失数字?

    自从我讨论任何编码或算法面试问题以来已经有很长时间了,因此我想重新考虑一种最流行的基于数组的编码问题,即在给定数组中查找缺失的数字. 在进行编程工作面试之前,您可能已经听说过或看到过此问题,但是面试官 ...

  9. JVAV学习小练习(一)之leetcode习题之接雨水

    leetcode习题之接雨水 一.题目描述 给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水.(图片是从leetcode拉过来的) ...

最新文章

  1. C++的STL栈实现获取栈中最小元素的成员
  2. PID控制器开发笔记之二:积分分离PID控制器的实现
  3. 【mysql的设计与优化专题(6)】mysql索引攻略
  4. UVa 1639 - Candy(数学期望 + 精度处理)
  5. Linux 命令(136)—— curl 命令
  6. springboot mybatis 后台框架平台 集成代码生成器 shiro 权限
  7. js检测浏览器支持的字体
  8. 蔡学镛:架构师最重视的文档
  9. 图片去水印工具软件,比PS还好用的图片杂物去除工具
  10. gg大玩家f服务器无响应,gg大玩家显示应用启动失败 | 手游网游页游攻略大全
  11. 读文万卷025期:使用MRI形态学特征和表观弥散系数预测WHO II/III级胶质瘤分子状态;帕金森病的中脑的定量磁敏感成像
  12. 算法设计与分析 ——10-7课程总结
  13. mysql数据库设计教材_mySQL教程 第1章 数据库设计
  14. 移动平台端到端低成本解决方案
  15. vue 项目使用 Clipboard-复制文本或图片到剪贴板
  16. 研究生查分方式-查分时间大汇总-文都管联院
  17. win10无线网卡(该设备无法启动,代码10)
  18. PostgreSQL数据库动态共享内存管理器——dynamic shared memory segment
  19. 怎么让限制复制的网站能复制
  20. 1205: 你爱我么?

热门文章

  1. 如何将 Redis 的内存优化?
  2. 设计即开发,如何打通软件研发的“任督二脉”?
  3. 9 位 IEEE Fellow 确认出席 2019 嵌入式智能国际大会!
  4. 不写一行代码就能玩转 Kaggle 竞赛?
  5. 用脚踹?地震火灾中,如何快速打开人脸识别闸机门?
  6. 手机芯片 AI 之争:高通、联发科均超华为!
  7. 再一次站在捆绑销售风口的携程该何去何从?
  8. 第 11 章 装饰者设计模式
  9. webp环境搭建和使用过程
  10. 计算机科学渗透信息论的思想,信息系统思想在高中地理课程教学中的渗透方法分析...