aaarticlea/png;base64,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" alt="" />

 public int singleNumber(int[] A) {
int s=0;
for(int i=0;i<A.length;i++){
s=s^A[i];
}
return s;
}

leetcode--012 single number I的更多相关文章

  1. Leetcode 137 Single Number II 仅出现一次的数字

    原题地址https://leetcode.com/problems/single-number-ii/ 题目描述Given an array of integers, every element ap ...

  2. leetcode 136 Single Number, 260 Single Number III

    leetcode 136. Single Number Given an array of integers, every element appears twice except for one. ...

  3. LeetCode 260. Single Number III(只出现一次的数字 III)

    LeetCode 260. Single Number III(只出现一次的数字 III)

  4. LeetCode 137. Single Number II(只出现一次的数字 II)

    LeetCode 137. Single Number II(只出现一次的数字 II)

  5. LeetCode 136. Single Number(只出现一次的数字)

    LeetCode 136. Single Number(只出现一次的数字)

  6. LeetCode 137 Single Number II(仅仅出现一次的数字 II)(*)

    翻译 给定一个整型数组,除了某个元素外其余的均出现了三次. 找出这个元素. 备注: 你的算法应该是线性时间复杂度. 你能够不用额外的空间来实现它吗? 原文 Given an array of inte ...

  7. LeetCode 136 Single Number(仅仅出现一次的数字)

    翻译 给定一个整型数组,除了某个元素外其余元素均出现两次. 找出这个仅仅出现一次的元素. 备注: 你的算法应该是一个线性时间复杂度. 你能够不用额外空间来实现它吗? 原文 Given an array ...

  8. [LeetCode] 136. Single Number 单独数

    Given a non-empty array of integers, every element appears twice except for one. Find that single on ...

  9. [LeetCode] 137. Single Number II 单独数 II

    Given a non-empty array of integers, every element appears three times except for one, which appears ...

  10. [LeetCode] 260. Single Number III 单独数 III

    Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...

随机推荐

  1. Android 系统编译

    最近研究了下Android 的编译系统,下面结合编译我们自己的产品 mobot 来对整个编译系统进行必要的介绍,方便大家今 后对默认编译的修改. 先列出几个觉得重要的Make 文件: build/bu ...

  2. NDK Build 用法(NDK Build)

    1.ndk-build的用法 Android NDKr4引入了一个新的.小巧的shell脚本ndk-build,来简化源码编译. 该文件位于NDK根目录,进入你的工程根目录或子目录之后,在命令行下调用 ...

  3. C语言开发工具

    1.编写程序的工具: indent命令将自动调整C代码的缩进风格,个人比较喜欢indent -kr 2.编译C语言程序: 1.gcc编译器: gcc是一个ANSI C兼容编译器,C++编译器也可以编译 ...

  4. hdu_5418_Victor and World(状压DP+Floyd)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5418 题意:给你n个点,和一些边,找一条路径经过全部的点,并回到起点,问最小的花费是多少, 题解:m& ...

  5. Python之路【第二篇】:Python基础(二)

    windows的换行符:\n\r linux的换行符:\n 文件的数据处理: r 以只读模式打开文件(默认模式)w 以只写模式打开文件a 以追加模式打开文件 r+b 以读写模式打开文件(以读/写方式打 ...

  6. java+tomcat+Eclipse+mysql配置

    Java下载及配置: 1. 下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...

  7. ref和out,以及一般方法的引用参数和值参数寻解

    对与ref和out的区别,我相信很多人都知道,这里我简单罗列下: 1.首先ref和out两种类型的参数都是可以将方法内对参数的修改传递到方法外面 2.ref参数需要在传递之前初始化,out不需要,ou ...

  8. java集合框架list和set

    为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一中方式 数组和集合类同是容器,有何不同? 数组虽然也可以存储对象 ...

  9. AVR之BOOTLOADER技术详解(转)

    源:http://blog.csdn.net/zhenhua10/article/details/6442412 ATmega128具备引导加载支持的用户程序自编程功能(In-System Progr ...

  10. ReactiveCocoa Weak-Strong Dance

    AC在应用中大量使用了block,由于Objective-C语言的内存管理是基于引用计数的,为了避免循环引用问题,在block中如果要引用self,需要使用@weakify(self)和@strong ...