题目:

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?

看了别人的解答才会的,利用公式a XOR b XOR a = b,从A[n]开始,依次往前执行A[n] = A[n] XOR A[n-1],最后A[0]就是答案。

例如如果序列是{a,b,a,c,b}

那么数组A各项分别是:

0 1 2 3 4
c XOR a XOR a = c c XOR b XOR a XOR b = c XOR a c XOR b XOR a c XOR b b

代码:

class Solution {
public:int singleNumber(int A[], int n) {while(--n){A[n-1] ^= A[n];}return A[0];}
};

这里自己还犯了一个白痴想法,认为a XOR b要么是0要么是1,这个只是对于a,b为0,1的时候成立的,如果a,b不是0,1,此时是把a,b表示成二进制数后逐位异或的。

Java版本代码:

1 public class Solution {
2     public int singleNumber(int[] A) {
3         int answer = 0;
4         for(int i = 0;i < A.length;i++){
5             answer = answer ^ A[i];
6         }
7         return answer;
8     }
9 }

转载于:https://www.cnblogs.com/sunshineatnoon/p/3636727.html

【leetcode刷题笔记】Single Number相关推荐

  1. 【leetcode刷题笔记】动态规划

    #[leetcode刷题笔记]动态规划 石子游戏 public boolean stoneGame(int[] piles) {int N = piles.length;// dp[i][j] is ...

  2. 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)

    LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...

  3. LeetCode刷题笔记2——数组2

    LeetCode刷题笔记2--数组2 重塑数组 题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原 ...

  4. 小何同学的leetcode刷题笔记 基础篇(01)整数反转

    小何同学的leetcode刷题笔记 基础篇(01)整数反转[07] *** [01]数学取余法*** 对数字进行数位操作时,常见的方法便是用取余的方法提取出各位数字,再进行操作 操作(1):对10取余 ...

  5. LeetCode刷题笔记汇总

    LeetCode刷题笔记汇总 第一次刷LeetCode写的一些笔记. 1.两数之和 3.无重复字符的最长子串 15.三数之和 18.四数之和 19.删除链表的倒数第 N 个结点 20.有效的括号 21 ...

  6. LeetCode刷题笔记-动态规划-day4

    文章目录 LeetCode刷题笔记-动态规划-day4 55. 跳跃游戏 1.题目 2.解题思路 3.代码 45. 跳跃游戏 II 1.题目 2.解题思路 3.代码 LeetCode刷题笔记-动态规划 ...

  7. LeetCode刷题笔记- 15.三数之和

    LeetCode刷题笔记- 15.三数之和 C语言 题目 注意点 C语言 /*** Return an array of arrays of size *returnSize.* The sizes ...

  8. LeetCode刷题笔记第6题:Z字形变换

    LeetCode刷题笔记第6题:Z字形变换 想法: 要完成字符串根据给定的行数从上往下,从左到右完成Z字形排列.当只有一行时直接返回原字符串,当行数大于1时,先以行数构建一个行数数值个空字符串的列表, ...

  9. leetcode刷题笔记——二分查找

    leetcode刷题笔记--二分查找 目前完成的贪心相关的leetcode算法题序号: 中等:80,81 困难:4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com ...

  10. LeetCode刷题笔记(算法思想 四)

    LeetCode刷题笔记(算法思想 四) 七.动态规划 斐波那契数列 70. 爬楼梯 198. 打家劫舍 213. 打家劫舍 II 信件错排 母牛生产 矩阵路径 64. 最小路径和 62. 不同路径 ...

最新文章

  1. Java开发环境的搭建以及使用eclipse从头一步步创建java项目
  2. Nat. Med. | 人工智能临床研究新指南
  3. HDU 3336 Count the string(KMP+DP)
  4. android authtype=1,【报Bug】plus.screen.lockOrientation在android里引起闪退
  5. brew install php55redis,Mac下安装LNMP环境
  6. UVA10369 Arctic Network
  7. Kubernetes集群安全概述
  8. bootstrap加载mysql数据库_bootstrap后台管理系统前后台实现(含数据库)
  9. Flutter、ReactNative、uniapp对比
  10. Eclipse直接打开类文件/文件夹所在的本地目录
  11. 一旦有辞职念头就干不长了吗_如何理性而高效地辞职?
  12. springboot注解整理
  13. Android Studio 使用Method trace,查看某进程的所有线程trace的方法
  14. 工业革命 书_工业革命以来最重大的变化
  15. MSAgent(微软助手精灵)很好很强大
  16. 如何写出高分essay?高分essay文章结构分析
  17. 蓝桥杯java历年真题及答案整理21~40
  18. 模拟量开环控制系统的组成
  19. conductor restart和rerun机制
  20. 95-2.Hive史诗级调优大全_ev 两个案例重复了 没用

热门文章

  1. Palm应用开发之四Palm 应用模型
  2. C#学习日志三(流程控制语句)
  3. C++之纯虚函数和抽象类
  4. 李洋疯狂C语言之有关“you are come from shanghai”逆序(二)
  5. 【小松教你手游开发】【unity实用技能】给每个GameObject的打开关闭加上一个渐变...
  6. ul、li列表简单实用代码实例
  7. 《企业软件交付:敏捷与高效管理精要》——3.4 企业软件交付的软件工厂方法...
  8. php 输入汉字自动带出拼音和英文
  9. uva 10026 Shoemaker's Problem(排序)
  10. 读取Xml文档的元素和属性