首页 > 代码库 > leetcode[136] Single Number
leetcode[136] Single Number
给定一个数组,里面有一个数只出现一次,其他的出现两次,找出出现一次的数。
法一:map(但利用额外空间)
class Solution {public: int singleNumber(int A[], int n) { unordered_map<int, int> umap; for (int i = 0; i < n; i++) { umap[A[i]]++; } for (int i = 0; i < n; i++) if (umap[A[i]] == 1) return A[i]; }};
法二:用异或(只保留出现奇数次的位数)
class Solution {public: int singleNumber(int A[], int n) { int sum = 0; for (int i = 0; i < n; i++) { sum ^= A[i]; } return sum; }};
leetcode[136] Single Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。