LeetCode 136.Single Number
来源:互联网 发布:如何成为一名淘宝客 编辑:程序博客网 时间:2024/06/05 05:53
LeetCode 136.Single Number
Description:
Given an array of integers, every element appears twice except for one. Find that single one.
分析:
首先给数组按从小到大排序,然后遍历该数组,判断相邻之间的数是否相等;
若不等,则把标记flag置为true,可用来判断single number在原数组的大小,从而确定其排序后的位置,同时记录下当前遍历到达位置,并退出循环;若相等,更新i为i+2,表示遍历直接跳过一个数,因为这个数已经和前一个数相等。
flag为真,表示single number不是最大的一个数,处于已排序的数组中间,nums[after+1]是可以遍历到的,此时再判断一下前后相邻数的大小即可得到结果;
flag为假,表示single number是最大的一个数,无法遍历到,返回该数即是结果。
代码如下:
#include <iostream>#include <algorithm>#include <vector>using namespace std;class Solution {public: int singleNumber(vector<int>& nums) { int before, after; bool flag = false; sort(nums.begin(), nums.end()); for (int i = 0; i < nums.size() - 1; i += 2) { // 这里i += 2,说明这两个数相等,遍历直接跳过nums[i+1] // 不等时,记录下flag和当前遍历的位置 if (nums[i] != nums[i + 1]) { flag = true; before = i; after = i + 1; break; } } // flag为真表示single number不是最大的一个数, // 该数处于已排序的数组中间,nums[after+1]是可以遍历到的 if (flag) { if (nums[after] != nums[after + 1]) { return nums[after]; } else { return nums[before]; } } // 表示single number是最大的一个数,无法遍历到,返回该数即是结果 else { return nums[nums.size() - 1]; } }};int main() { Solution s; vector<int> nums; int n; cin >> n; int t; for (int i = 0; i < n; i++) { cin >> t; nums.push_back(t); } cout << s.singleNumber(nums) << endl; return 0;}
阅读全文
0 0
- LeetCode 136. Single Number
- [Leetcode] 136. Single Number
- LeetCode 136. Single Number
- 【leetcode】136. Single Number
- 【LeetCode】136. Single Number
- Leetcode 136. Single Number
- leetcode 136. Single Number
- leetcode 136. Single Number
- 136. Single Number LeetCode
- LeetCode 136. Single Number
- LeetCode 136. Single Number
- [LeetCode]136. Single Number
- LeetCode 136. Single Number
- LeetCode *** 136. Single Number
- [LeetCode]136. Single Number
- LeetCode--136. Single Number
- 【leetcode】136. Single Number
- leetcode-136. Single Number
- 静态代码块,构造代码块
- byte/short相加得到是int
- android 关于融云单聊头像显示处理
- 2.2 多符号离散平稳信源
- 决策树ID3 算法python实现
- LeetCode 136.Single Number
- C语言实验——矩阵转置
- 二维码,条形码扫描?看我就够了
- 【WebGL】hello WebGL
- 胶囊间的动态路由(Dynamic Routing Between Capsules)翻译
- Vue子组件状态更新
- 浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
- 图论基础知识总结(一)
- jsonpath