力扣(LeetCode)缺失数字 个人题解
2024-09-01 18:37:31
给定一个包含 0, 1, 2, ..., n
中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。
示例 1:
输入: [3,0,1]
输出: 2
示例 2:
输入: [9,6,4,2,3,5,7,0,1]
输出: 8
说明:
你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?
思路有两种,一种是求和,根据数学方法算出缺失项,一种是使用异或,求出缺失项。
摘自评论区:
好像和以前的一道题(只出现一次的数字)有异曲同工之处。看了大家的题解,异或操作(^
)是一种很好的方式,不用考虑sum越界问题。
**举个例子:**
- 0 ^ 4 = 4
- 4 ^ 4 = 0
那么,就可以不用求和,直接使用异或运算^
进行**抵消**,剩下的数字就是缺失的了。
代码如下:
class Solution {
public int missingNumber(int[] nums) {
int n=nums.length;
int total=0;
for(int i : nums)
total+=i;
return (n+1)*n/2-total;
}
}
最新文章
- linux socket编程实例
- Java中的两个关键字——super、this
- hash 分区的用途是什么?
- ubuntu 14 配置JDK
- 【PL/SQL练习】控制结构
- 396. Rotate Function
- (转载)PHP isset()函数作用
- linux 在批处理中,完整路径有空格的处理方式(加引號)
- Android 开发UI牛博[转]
- 回文质数 Prime Palindromes
- Vue与React的异同
- 微信小程序笔记
- JVM的类加载
- js关闭当前页
- jdk6使用WebSocket
- Android Studio SVN配置
- Problem4-Project Euler
- Android 给双ListView组织数据源
- Little C Loves 3 I
- 【Python学习笔记】
热门文章
- (20)ASP.NET Core EF创建模型(必需属性和可选属性、最大长度、并发标记、阴影属性)
- tinyxml2
- 《如何学习基于ARM嵌入式系统》笔记整理
- Spring Boot - 访问外部接口最全总结
- Java properties | FileNotFoundException: properties (系统找不到指定的文件。)
- printf 格式输出代码大全
- 源码学习系列之SpringBoot自动配置(篇一)
- rem1
- SpringCloud之Zuul高并发情况下接口限流(十二)
- 第二篇 Flask的Response三剑客及两个小儿子