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

Commit4cb151c

Browse files
refactor 658
1 parent1b7a1fd commit4cb151c

File tree

2 files changed

+43
-41
lines changed

2 files changed

+43
-41
lines changed

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

Lines changed: 38 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -25,50 +25,52 @@
2525
Absolute value of elements in the array and x will not exceed 104
2626
*/
2727
publicclass_658 {
28-
publicList<Integer>findClosestElements(List<Integer>arr,intk,intx) {
29-
List<Integer>result =newArrayList<>();
30-
intindex =findInsertPosition(arr,x);
31-
intright =0;
32-
if (arr.get(index) ==x) {
33-
result.add(arr.get(index));
34-
right =index +1;
35-
k--;
36-
}else {
37-
right =index;
38-
}
39-
intleft =index -1;
40-
while (k-- >0) {
41-
if (left >=0 &&right <arr.size()) {
42-
if (x -arr.get(left) <=arr.get(right) -x) {
28+
publicstaticclassSolution1 {
29+
publicList<Integer>findClosestElements(List<Integer>arr,intk,intx) {
30+
List<Integer>result =newArrayList<>();
31+
intindex =findInsertPosition(arr,x);
32+
intright =0;
33+
if (arr.get(index) ==x) {
34+
result.add(arr.get(index));
35+
right =index +1;
36+
k--;
37+
}else {
38+
right =index;
39+
}
40+
intleft =index -1;
41+
while (k-- >0) {
42+
if (left >=0 &&right <arr.size()) {
43+
if (x -arr.get(left) <=arr.get(right) -x) {
44+
result.add(0,arr.get(left--));
45+
}else {
46+
result.add(result.size(),arr.get(right++));
47+
}
48+
}elseif (left >=0) {
4349
result.add(0,arr.get(left--));
44-
}else {
50+
}elseif (right <arr.size()){
4551
result.add(result.size(),arr.get(right++));
4652
}
47-
}elseif (left >=0) {
48-
result.add(0,arr.get(left--));
49-
}elseif (right <arr.size()) {
50-
result.add(result.size(),arr.get(right++));
5153
}
54+
returnresult;
5255
}
53-
returnresult;
54-
}
5556

56-
privateintfindInsertPosition(List<Integer>arr,intx) {
57-
if (arr ==null ||arr.size() ==0) {
58-
return0;
59-
}
60-
intlen =arr.size();
61-
for (inti =0;i <len;i++) {
62-
if (arr.get(0) >x) {
57+
privateintfindInsertPosition(List<Integer>arr,intx) {
58+
if (arr ==null ||arr.size() ==0) {
6359
return0;
64-
}elseif (arr.get(len -1) <x) {
65-
returnlen;
66-
}elseif (arr.get(i) <x &&arr.get(i +1) >x) {
67-
returni +1;
68-
}elseif (arr.get(i) ==x) {
69-
returni;
7060
}
61+
intlen =arr.size();
62+
for (inti =0;i <len;i++) {
63+
if (arr.get(0) >x) {
64+
return0;
65+
}elseif (arr.get(len -1) <x) {
66+
returnlen;
67+
}elseif (arr.get(i) <x &&arr.get(i +1) >x) {
68+
returni +1;
69+
}elseif (arr.get(i) ==x) {
70+
returni;
71+
}
72+
}
73+
returnlen;
7174
}
72-
returnlen;
7375
}
7476
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
importstaticjunit.framework.Assert.assertEquals;
1212

1313
publicclass_658Test {
14-
privatestatic_658test;
14+
privatestatic_658.Solution1solution1;
1515
privatestaticList<Integer>arr;
1616
privatestaticList<Integer>expected;
1717
privatestaticintk;
1818
privatestaticintx;
1919

2020
@BeforeClass
2121
publicstaticvoidsetup() {
22-
test =new_658();
22+
solution1 =new_658.Solution1();
2323
}
2424

2525
@Test
@@ -28,7 +28,7 @@ public void test1() {
2828
x =3;
2929
expected =newArrayList<>(Arrays.asList(1,2,3,4));
3030
arr =newArrayList<>(Arrays.asList(1,2,3,4,5));
31-
assertEquals(expected,test.findClosestElements(arr,k,x));
31+
assertEquals(expected,solution1.findClosestElements(arr,k,x));
3232
}
3333

3434
@Test
@@ -37,7 +37,7 @@ public void test2() {
3737
x = -1;
3838
expected =newArrayList<>(Arrays.asList(1,2,3,4));
3939
arr =newArrayList<>(Arrays.asList(1,2,3,4,5));
40-
assertEquals(expected,test.findClosestElements(arr,k,x));
40+
assertEquals(expected,solution1.findClosestElements(arr,k,x));
4141
}
4242

4343
@Test
@@ -46,6 +46,6 @@ public void test3() {
4646
x =5;
4747
arr =newArrayList<>(Arrays.asList(0,0,1,2,3,3,4,7,7,8));
4848
expected =newArrayList<>(Arrays.asList(3,3,4));
49-
assertEquals(expected,test.findClosestElements(arr,k,x));
49+
assertEquals(expected,solution1.findClosestElements(arr,k,x));
5050
}
5151
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp