Skip to content

Commit 743aee7

Browse files
committed
finish "136. Single Number". Fix #136
1 parent 0377dbe commit 743aee7

File tree

2 files changed

+66
-6
lines changed

2 files changed

+66
-6
lines changed

README.adoc

+6-6
Original file line numberDiff line numberDiff line change
@@ -683,12 +683,12 @@
683683
//|{leetcode_base_url}/candy/[Candy]
684684
//|{source_base_url}/Candy.java[Java]
685685
//|Hard
686-
//
687-
//|136
688-
//|{leetcode_base_url}/single-number/[Single Number]
689-
//|{source_base_url}/SingleNumber.java[Java]
690-
//|Easy
691-
//
686+
687+
|136
688+
|{leetcode_base_url}/single-number/[Single Number]
689+
|{source_base_url}/SingleNumber.java[Java]
690+
|Easy
691+
692692
//|137
693693
//|{leetcode_base_url}/single-number-ii/[Single Number II]
694694
//|{source_base_url}/SingleNumberIi.java[Java]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.diguage.algorithm.leetcode;
2+
3+
import java.util.Objects;
4+
5+
/**
6+
* = 136. Single Number
7+
*
8+
* https://leetcode.com/problems/single-number/[Single Number - LeetCode]
9+
*
10+
* Given a non-empty array of integers, every element appears twice except for one. Find that single one.
11+
*
12+
* *Note:*
13+
*
14+
* Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
15+
*
16+
* .Example 1:
17+
* [source]
18+
* ----
19+
* Input: [2,2,1]
20+
* Output: 1
21+
* ----
22+
*
23+
* .Example 2:
24+
* [source]
25+
* ----
26+
* Input: [4,1,2,1,2]
27+
* Output: 4
28+
* ----
29+
*
30+
* @author D瓜哥, https://www.diguage.com/
31+
* @since 2020-01-01 12:38
32+
*/
33+
public class SingleNumber {
34+
/**
35+
* Runtime: 0 ms, faster than 100.00% of Java online submissions for Single Number.
36+
*
37+
* Memory Usage: 38.5 MB, less than 98.52% of Java online submissions for Single Number.
38+
*/
39+
public int singleNumber(int[] nums) {
40+
if (Objects.isNull(nums) || nums.length == 0) {
41+
return 0;
42+
}
43+
int result = nums[0];
44+
for (int i = 1; i < nums.length; i++) {
45+
result ^= nums[i];
46+
}
47+
return result;
48+
}
49+
50+
public static void main(String[] args) {
51+
SingleNumber solution = new SingleNumber();
52+
int[] a1 = {2, 2, 1};
53+
int r1 = solution.singleNumber(a1);
54+
System.out.println((r1 == 1) + " : " + r1);
55+
56+
int[] a2 = {4, 1, 2, 1, 2};
57+
int r2 = solution.singleNumber(a2);
58+
System.out.println((r2 == 4) + " : " + r2);
59+
}
60+
}

0 commit comments

Comments
 (0)