【Leetcode】Missing Number
2015-12-01 11:23
381 查看
题目链接:https://leetcode.com/problems/missing-number/
题目:
Given an array containing n distinct numbers taken from
find the one that is missing from the array.
For example,
Given nums =
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
思路:
1、数组是0~n,所以可以利用数组和
2、用异或操作,让nums数组和0~n异或,重复的元素异或结果为0,最后结果就是miss number
算法1:
算法2:
题目:
Given an array containing n distinct numbers taken from
0, 1, 2, ..., n,
find the one that is missing from the array.
For example,
Given nums =
[0, 1, 3]return
2.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
思路:
1、数组是0~n,所以可以利用数组和
2、用异或操作,让nums数组和0~n异或,重复的元素异或结果为0,最后结果就是miss number
算法1:
public int missingNumber(int[] nums) { int sum = 0; for (int i : nums) { sum += i; } int result = nums.length * (nums.length + 1) / 2; if (result == sum) { return 0; } else { return result - sum; } }
算法2:
public int missingNumber(int[] nums) { int result = 0; for(int i=0;i<nums.length;i++){ result ^= nums[i]^i; } result ^=nums.length; return result; }
相关文章推荐
- android 图片的平移,缩放和旋转
- Ejabberd2:安装和操作指南(centos yum 安装ejabberd)
- 关于maven本地仓库的设置和添加jar包
- Java读书笔记十三(Java中的Final关键字)
- 分布式与集群的联系与区别
- 彼得·蒂尔:新核能市场将成风投热土
- pdfjs使用方法
- ffmpeg框架结构解读大全
- lua中元素的下标是从1开始的
- 行内元素和区块元素
- Jenkins怎么启动和停止服务
- MV5的实际应用
- Web开发敏捷之道学习(三)
- 面向对象,掌握windows应用程序的创建过程:为应用程序添加消息及响应
- 【转载】VC获取当前路径及程序名
- 正则表达式的应用
- Android 触摸屏手势识别资料汇总
- 用Eclipse 来导入android 工程 总结
- 字符串切分遇到的问题
- First Bad Version 第一个坏版本