[LeetCode]268. Missing Number
来源:互联网 发布:游戏网络推广员 编辑:程序博客网 时间:2024/06/05 04:49
[LeetCode]268. Missing Number
题目描述
思路
因为只有0-n的数在数组中,所以只要对数组每一位指向的数字加标识即可
这里做的标识为取相反数,需要考虑0的情况
代码
#include <iostream>#include <vector>using namespace std;class Solution {public: int missingNumber(vector<int>& nums) { int zeroIndex = -1; for (int i = 0; i < nums.size(); ++i) { //数组中数字为数组长度时,越界,跳过 if (abs(nums[i]) == nums.size()) continue; //数组中数字对应为0时,需要额外标识 else if (nums[abs(nums[i])] == 0) zeroIndex = abs(nums[i]); //取相反数标识 else nums[abs(nums[i])] = nums[abs(nums[i])] < 0 ? nums[abs(nums[i])] : -nums[abs(nums[i])]; } for (int i = 0; i < nums.size(); ++i) { //标识后,对应数字为正数,或者数字为0,零标识未改变的,返回当前数字下标 if (nums[i] > 0 || (nums[i] == 0 && zeroIndex == -1)) return i; } //若数组中数字都小于0,且0标识也被改变,那么缺失的数只有最大的 return nums.size(); }};int main() { vector<int> nums = { 2, 0, 1 }; Solution s; cout << s.missingNumber(nums) << endl; system("pause"); return 0;}
0 0
- [leetcode] 268.Missing Number
- 【leetcode】268. Missing Number
- [leetcode] 268. Missing Number
- Leetcode 268. Missing Number
- 268. Missing Number LeetCode
- LeetCode 268. Missing Number
- 【LeetCode】268. Missing Number
- [LeetCode]268. Missing Number
- LeetCode *** 268. Missing Number
- 【leetcode】268. Missing Number
- leetcode-268. Missing Number
- LeetCode-268.Missing Number
- LeetCode 268. Missing Number
- [Leetcode] 268. Missing Number
- 【leetcode】268. Missing Number
- leetcode 268. Missing Number
- 【leetcode】268. Missing Number
- leetcode- 268. Missing Number
- web.xml配置文件元素详解
- SystemServer进程启动流程的理解
- 归并排序
- TensorFlow安装
- LINUX(redhat 7.0) 进程定义
- [LeetCode]268. Missing Number
- 数据结构课程设计-图书馆管理系统
- SPOJ
- java swing Jtable 自定义 表格
- 深度学习和深度学习框架CNTK入门(一)
- Java中内部类和异常处理
- Glide ImageViewTarget 加载图片监听
- JVM 垃圾回收学习总结1
- Android设置上圆角和下圆角