20190901:(leetcode习题)缺失数字
缺失数字
- 题目
- 大致思路
- 代码实现
题目
大致思路
- 第一,将所有的数组加起来,再把0-(length-1)的数字和求出来,两个差值即为目标值。
- 第二:根据一个数 连续 ^ 同一个数 两次 得到的还是这个数。让0-(length-1)的数字和数组的每一个数相异或,最后得到的数字就是那个缺失的数字。
- 排序,通过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习题)缺失数字相关推荐
- Leetcode 268. 缺失数字 解题思路及C++实现
方法一:利用求和公式 1+2+...+n = n*(n+1)/2 解题思路: 利用求和公式 1+2+...+n = n*(n+1)/2,首先求出nums的size,就知道这n个数的和了,然后遍历数组n ...
- LeetCode 268 缺失数字
原题链接 标签: 数组 排序 解题思路: 1. 先进行排序 2. 0--N之间只有一个数没有出现,并且这是数组缺失的数字等于所在数组下标 3. 利用双指针,找到相差1的两个 ...
- LeetCode 268. 缺失数字
文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个包含 0, 1, 2, -, n 中 n 个数的序列,找出 0 - n 中没有出现在序列中的那个数. 示例 1:输入: [3,0,1] 输 ...
- LeetCode每日一题: 缺失数字(No.268)
题目:缺失数字 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数. 复制代码 示例: 输入: [3,0,1] 输出: 2输入: [9,6 ...
- 每天Leetcode 刷题 初级算法篇-缺失数字
题目要求: 缺失数字 力扣题解: 代码 import java.util.Arrays;/*** @program: mydemo* @description: 缺失数字* @author: Mr.z ...
- 牛客题霸 [ 缺失数字] C++题解/答案
牛客题霸 [ 缺失数字] C++题解/答案 题目描述 从0,1,2,-,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小. 题解: 我们可以用map来标记已出现过的数字 因 ...
- java从数组查找指定整数_如何在Java中使用重复项查找整数数组中的K个缺失数字?...
java从数组查找指定整数 自从我讨论任何编码或算法面试问题以来已经有很长时间了,因此我想重新考虑一种最流行的基于数组的编码问题,即在给定数组中查找缺失的数字. 在进行编程工作面试之前,您可能已经听说 ...
- 如何在Java中使用重复项查找整数数组中的K个缺失数字?
自从我讨论任何编码或算法面试问题以来已经有很长时间了,因此我想重新考虑一种最流行的基于数组的编码问题,即在给定数组中查找缺失的数字. 在进行编程工作面试之前,您可能已经听说过或看到过此问题,但是面试官 ...
- JVAV学习小练习(一)之leetcode习题之接雨水
leetcode习题之接雨水 一.题目描述 给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水.(图片是从leetcode拉过来的) ...
最新文章
- C++的STL栈实现获取栈中最小元素的成员
- PID控制器开发笔记之二:积分分离PID控制器的实现
- 【mysql的设计与优化专题(6)】mysql索引攻略
- UVa 1639 - Candy(数学期望 + 精度处理)
- Linux 命令(136)—— curl 命令
- springboot mybatis 后台框架平台 集成代码生成器 shiro 权限
- js检测浏览器支持的字体
- 蔡学镛:架构师最重视的文档
- 图片去水印工具软件,比PS还好用的图片杂物去除工具
- gg大玩家f服务器无响应,gg大玩家显示应用启动失败 | 手游网游页游攻略大全
- 读文万卷025期:使用MRI形态学特征和表观弥散系数预测WHO II/III级胶质瘤分子状态;帕金森病的中脑的定量磁敏感成像
- 算法设计与分析 ——10-7课程总结
- mysql数据库设计教材_mySQL教程 第1章 数据库设计
- 移动平台端到端低成本解决方案
- vue 项目使用 Clipboard-复制文本或图片到剪贴板
- 研究生查分方式-查分时间大汇总-文都管联院
- win10无线网卡(该设备无法启动,代码10)
- PostgreSQL数据库动态共享内存管理器——dynamic shared memory segment
- 怎么让限制复制的网站能复制
- 1205: 你爱我么?