异或巧用:Single Number

异或巧用:SingleNumber

今天刷

题目:

Givenanarrayofintegers,everyelementappearstwiceexceptforone.Findthatsingleone.

Note:Youralgorithmshouldhavealinearruntimecomplexity.Couldyouimplementitwithoutusingextramemory?

翻译:给定一个整形数组,,其中除了一个元素出现一次外,其他元素均出现两次。找到那个出现一次的元素

注意:算法应具有线性时间复杂度。你能不用额外内存实现它么?

思路:通过异或运算实现。

原理:异或运算中,两个二进制位相同取零,不同则取1.

异或特性:

(1)顺序无关:即若有多个元素相异或,则异或元素可以随意交换顺序,不会影响结果

</pre><pre class="java" name="code">public class Solution {public int singleNumber(int[] nums) {int res = 0;for(int i:nums) {res ^= i;}return res;}}

另附一道同样应用异或运算解决的题目(面试时可能会遇到):

步骤:

版权声明:本文为博主原创文章,未经博主允许不得转载。

成功是什么?就是走过了所有通向失败的路.只剩下一条路.那就是成功的路.

异或巧用:Single Number

相关文章:

你感兴趣的文章:

标签云: