Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit132ec47

Browse files
add a solution for 540
1 parent91f7d57 commit132ec47

File tree

3 files changed

+54
-7
lines changed

3 files changed

+54
-7
lines changed

‎README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,7 @@ _If you like this project, please leave me a star._ ★
762762
|543|[Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_543.java) | | Easy | Tree/DFS/Recursion
763763
|542|[01 Matrix](https://leetcode.com/problems/01-matrix/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_542.java) | |Medium | BFS
764764
|541|[Reverse String II](https://leetcode.com/problems/reverse-string-ii/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_541.java) | |Easy | String
765-
|540|[Single Element in a Sorted Array](https://leetcode.com/problems/single-element-in-a-sorted-array/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_540.java)||Medium|
765+
|540|[Single Element in a Sorted Array](https://leetcode.com/problems/single-element-in-a-sorted-array/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_540.java) | |Medium |Array, Binary Search
766766
|539|[Minimum Time Difference](https://leetcode.com/problems/minimum-time-difference/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_539.java) | | Medium | String
767767
|538|[Convert BST to Greater Tree](https://leetcode.com/problems/convert-bst-to-greater-tree/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_538.java) | |Easy | Tree
768768
|537|[Complex Number Multiplication](https://leetcode.com/problems/complex-number-multiplication/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_537.java) | |Medium | Math, String

‎src/main/java/com/fishercoder/solutions/_540.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,33 @@ public int singleNonDuplicate(int[] nums) {
3030
returnnums[start];
3131
}
3232
}
33+
34+
publicstaticclassSolution3 {
35+
publicintsingleNonDuplicate(int[]nums) {
36+
intleft =0;
37+
intright =nums.length -1;
38+
while (left <right) {
39+
intmid =left + (right -left) /2;
40+
if (nums[mid] !=nums[mid +1] &&nums[mid] !=nums[mid -1]) {
41+
returnnums[mid];
42+
}
43+
if (nums[mid] !=nums[mid +1]) {
44+
if ((right -mid) %2 ==0) {
45+
if (right !=mid) {
46+
right =mid;
47+
}else {
48+
returnnums[mid];
49+
}
50+
}else {
51+
left =mid +1;
52+
}
53+
}elseif ((right -mid) %2 ==0 &&right !=mid) {
54+
left =mid +1;
55+
}else {
56+
right =mid -1;
57+
}
58+
}
59+
returnnums[left];
60+
}
61+
}
3362
}

‎src/test/java/com/fishercoder/_540Test.java

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,50 @@
99
publicclass_540Test {
1010
privatestatic_540.Solution1solution1;
1111
privatestatic_540.Solution2solution2;
12+
privatestatic_540.Solution3solution3;
1213
privatestaticint[]nums;
14+
privatestaticintexpected;
1315

1416
@BeforeClass
1517
publicstaticvoidsetup() {
1618
solution1 =new_540.Solution1();
1719
solution2 =new_540.Solution2();
20+
solution3 =new_540.Solution3();
1821
}
1922

2023
@Test
2124
publicvoidtest1() {
2225
nums =newint[]{1,1,2,3,3,4,4,8,8};
23-
assertEquals(2,solution1.singleNonDuplicate(nums));
24-
assertEquals(2,solution2.singleNonDuplicate(nums));
26+
expected =2;
27+
assertEquals(expected,solution1.singleNonDuplicate(nums));
28+
assertEquals(expected,solution2.singleNonDuplicate(nums));
29+
assertEquals(expected,solution3.singleNonDuplicate(nums));
2530
}
2631

2732
@Test
2833
publicvoidtest2() {
2934
nums =newint[]{3,3,7,7,10,11,11};
30-
assertEquals(10,solution1.singleNonDuplicate(nums));
31-
assertEquals(10,solution2.singleNonDuplicate(nums));
35+
expected =10;
36+
assertEquals(expected,solution1.singleNonDuplicate(nums));
37+
assertEquals(expected,solution2.singleNonDuplicate(nums));
38+
assertEquals(expected,solution3.singleNonDuplicate(nums));
3239
}
3340

3441
@Test
3542
publicvoidtest3() {
3643
nums =newint[]{1,1,2};
37-
assertEquals(2,solution1.singleNonDuplicate(nums));
38-
assertEquals(2,solution2.singleNonDuplicate(nums));
44+
expected =2;
45+
assertEquals(expected,solution1.singleNonDuplicate(nums));
46+
assertEquals(expected,solution2.singleNonDuplicate(nums));
47+
assertEquals(expected,solution3.singleNonDuplicate(nums));
48+
}
49+
50+
@Test
51+
publicvoidtest4() {
52+
nums =newint[]{1,1,2,2,3};
53+
expected =3;
54+
assertEquals(expected,solution1.singleNonDuplicate(nums));
55+
assertEquals(expected,solution2.singleNonDuplicate(nums));
56+
assertEquals(expected,solution3.singleNonDuplicate(nums));
3957
}
4058
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp