Leetcode:136.Single Number 找到数组里面的非重复数字,其他数字也最多重复两次

来源:互联网 发布:淘宝网地板胶 编辑:程序博客网 时间:2024/06/05 04:58

题目: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?
中文描述:给定整数数组,除了一个元素之外,每个元素都会出现两次。找到那个单一的。
注意:
您的算法应具有线性运行时复杂度。你可以实现它而不使用额外的内存吗?

     /**     * 题目的前提:算法应具有线性运行时复杂度。实现它而不使用额外的内存     * 我拿着这个题我就想着如何排序 如何遍历找到不同的元素     * 但是最后我发现这样做的时间复杂度都肯定大于n     * 看了别人的思路:发现XOR运算可以解决这个问题     * 两个相同的元素XOR之后为0     * 0 XOR Num = Num     * 所以答案也就出来了     * @param nums     * @return     */    public int singleNumber(int[] nums) {        int rev = 0;        for (int i = 0; i < nums.length; i++) {            rev ^= nums[i];        }        return rev;    }
阅读全文
0 0
原创粉丝点击