Missing Number
来源:互联网 发布:阿里云助手 编辑:程序博客网 时间:2024/06/04 18:39
https://leetcode.com/problems/missing-number/
先求出nums中最大的数max,然后根据等差数列求和公式求出1到max的所有数的和,然后再减去nums中所有数的和的差就是少的那个数!!
注意,当nums中没有0或者有0而且0到max都有的两种特殊情况,前者输出0,后者输出max + 1;
public class Solution { public int missingNumber(int[] nums) {int sum = 0;int max = Integer.MIN_VALUE;int flag = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] == 0) { flag = 1; } if (nums[i] > max) {max = nums[i];}sum += nums[i];} int total = max * (max + 1) / 2; if (total - sum == 0) { if (flag == 1) { return max + 1;} else return 0;} else {return total - sum;} }}
0 0
- Missing number
- Missing number
- Missing number
- Missing number
- Missing Number
- Missing Number
- Missing Number
- Missing Number.
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- 下雨了
- 高清视频软件bandicam的破解方法
- 6.ZigZag Conversion
- XML读写
- 2016蘑菇街笔试——看清问题的本质
- Missing Number
- 转 静态方法,非静态方法
- 随机森林(random forest)可以解决样本分布不均匀维度大且特征缺失的问题
- c++11 Thread库初探
- Android Layout 优化
- SQL语句介绍(4)
- 浏览器兼容处理(HTML条件注释、CSSHack和JS识别)
- QT多线程详解
- 幂等性 个人理解及应用