【leetcode刷题笔记】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?
看了别人的解答才会的,利用公式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相关推荐
- 【leetcode刷题笔记】动态规划
#[leetcode刷题笔记]动态规划 石子游戏 public boolean stoneGame(int[] piles) {int N = piles.length;// dp[i][j] is ...
- 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)
LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...
- LeetCode刷题笔记2——数组2
LeetCode刷题笔记2--数组2 重塑数组 题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原 ...
- 小何同学的leetcode刷题笔记 基础篇(01)整数反转
小何同学的leetcode刷题笔记 基础篇(01)整数反转[07] *** [01]数学取余法*** 对数字进行数位操作时,常见的方法便是用取余的方法提取出各位数字,再进行操作 操作(1):对10取余 ...
- LeetCode刷题笔记汇总
LeetCode刷题笔记汇总 第一次刷LeetCode写的一些笔记. 1.两数之和 3.无重复字符的最长子串 15.三数之和 18.四数之和 19.删除链表的倒数第 N 个结点 20.有效的括号 21 ...
- LeetCode刷题笔记-动态规划-day4
文章目录 LeetCode刷题笔记-动态规划-day4 55. 跳跃游戏 1.题目 2.解题思路 3.代码 45. 跳跃游戏 II 1.题目 2.解题思路 3.代码 LeetCode刷题笔记-动态规划 ...
- LeetCode刷题笔记- 15.三数之和
LeetCode刷题笔记- 15.三数之和 C语言 题目 注意点 C语言 /*** Return an array of arrays of size *returnSize.* The sizes ...
- LeetCode刷题笔记第6题:Z字形变换
LeetCode刷题笔记第6题:Z字形变换 想法: 要完成字符串根据给定的行数从上往下,从左到右完成Z字形排列.当只有一行时直接返回原字符串,当行数大于1时,先以行数构建一个行数数值个空字符串的列表, ...
- leetcode刷题笔记——二分查找
leetcode刷题笔记--二分查找 目前完成的贪心相关的leetcode算法题序号: 中等:80,81 困难:4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com ...
- LeetCode刷题笔记(算法思想 四)
LeetCode刷题笔记(算法思想 四) 七.动态规划 斐波那契数列 70. 爬楼梯 198. 打家劫舍 213. 打家劫舍 II 信件错排 母牛生产 矩阵路径 64. 最小路径和 62. 不同路径 ...
最新文章
- Java开发环境的搭建以及使用eclipse从头一步步创建java项目
- Nat. Med. | 人工智能临床研究新指南
- HDU 3336 Count the string(KMP+DP)
- android authtype=1,【报Bug】plus.screen.lockOrientation在android里引起闪退
- brew install php55redis,Mac下安装LNMP环境
- UVA10369 Arctic Network
- Kubernetes集群安全概述
- bootstrap加载mysql数据库_bootstrap后台管理系统前后台实现(含数据库)
- Flutter、ReactNative、uniapp对比
- Eclipse直接打开类文件/文件夹所在的本地目录
- 一旦有辞职念头就干不长了吗_如何理性而高效地辞职?
- springboot注解整理
- Android Studio 使用Method trace,查看某进程的所有线程trace的方法
- 工业革命 书_工业革命以来最重大的变化
- MSAgent(微软助手精灵)很好很强大
- 如何写出高分essay?高分essay文章结构分析
- 蓝桥杯java历年真题及答案整理21~40
- 模拟量开环控制系统的组成
- conductor restart和rerun机制
- 95-2.Hive史诗级调优大全_ev 两个案例重复了 没用
热门文章
- Palm应用开发之四Palm 应用模型
- C#学习日志三(流程控制语句)
- C++之纯虚函数和抽象类
- 李洋疯狂C语言之有关“you are come from shanghai”逆序(二)
- 【小松教你手游开发】【unity实用技能】给每个GameObject的打开关闭加上一个渐变...
- ul、li列表简单实用代码实例
- 《企业软件交付:敏捷与高效管理精要》——3.4 企业软件交付的软件工厂方法...
- php 输入汉字自动带出拼音和英文
- uva 10026 Shoemaker's Problem(排序)
- 读取Xml文档的元素和属性