本文主要是介绍LeetCode *** 136. Single Number,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
分析:
由于是成对出现,那么可以考虑先排序然后再去掉重复的值;或者利用key-value的方式来查看某值是否出现过。
但是这里是成对出现,可以考虑算法中的异或,利用异或可以将相同的值变为0,而任意数与0进行异或又等于其本身。所以这道题就很简单了。
代码:
class Solution {
public:int singleNumber(vector<int>& nums) {int res=0;for(int i=0;i<nums.size();++i){res^=nums[i];}return res;}
};
这篇关于LeetCode *** 136. Single Number的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!