Skip to content

Commit 02277fb

Browse files
authored
Merge pull request #58 from unrealwork/develop
leetcode: LargestPerimeterTriangle: passed
2 parents d805a02 + f1a4c3c commit 02277fb

File tree

4 files changed

+86
-0
lines changed

4 files changed

+86
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.leetcode.array;
2+
3+
import java.util.Arrays;
4+
5+
public final class LargestPerimeterTriangle {
6+
private LargestPerimeterTriangle() {
7+
}
8+
9+
public static int largestPerimeter(int[] nums) {
10+
Arrays.sort(nums);
11+
for (int i = nums.length - 1; i >= 2; i--) {
12+
if (nums[i] < nums[i - 1] + nums[i - 2]) {
13+
return nums[i] + nums[i - 1] + nums[i - 2];
14+
}
15+
}
16+
return 0;
17+
}
18+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.leetcode.array;
2+
3+
public final class NearestValidPoint {
4+
private NearestValidPoint() {
5+
}
6+
7+
public static int nearestValidPoint(int x, int y, int[][] points) {
8+
int index = -1;
9+
int minDist = Integer.MAX_VALUE;
10+
for (int i = 0; i < points.length; i++) {
11+
int[] p = points[i];
12+
int dist = Integer.MAX_VALUE;
13+
if (p[0] == x) {
14+
dist = Math.abs(p[1] - y);
15+
} else {
16+
if (p[1] == y) {
17+
dist = Math.abs(p[0] - x);
18+
}
19+
}
20+
if (dist < minDist) {
21+
minDist = dist;
22+
index = i;
23+
}
24+
}
25+
return index;
26+
}
27+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.leetcode.array;
2+
3+
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.params.ParameterizedTest;
5+
import org.junit.jupiter.params.converter.ConvertWith;
6+
import org.junit.jupiter.params.provider.CsvSource;
7+
8+
class LargestPerimeterTriangleTest {
9+
10+
@ParameterizedTest
11+
@CsvSource( {
12+
"'1,2,2', 5",
13+
"'1,2,1', 0"
14+
})
15+
void testLargestPerimeter(@ConvertWith(IntArrayConverter.class) int[] arr, int expected) {
16+
Assertions.assertEquals(expected, LargestPerimeterTriangle.largestPerimeter(arr));
17+
}
18+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.leetcode.array;
2+
3+
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.params.ParameterizedTest;
5+
import org.junit.jupiter.params.provider.Arguments;
6+
import org.junit.jupiter.params.provider.MethodSource;
7+
8+
import java.util.stream.Stream;
9+
10+
class NearestValidPointTest {
11+
12+
static Stream<Arguments> testCases() {
13+
return Stream.of(
14+
Arguments.arguments(3, 4, new int[][] {{1, 2}, {3, 1}, {2, 4}, {2, 3}, {4, 4}}, 2)
15+
);
16+
}
17+
18+
@ParameterizedTest
19+
@MethodSource("testCases")
20+
void nearestValidPoint(int x, int y, int[][] points, int expected) {
21+
Assertions.assertEquals(expected, NearestValidPoint.nearestValidPoint(x, y, points));
22+
}
23+
}

0 commit comments

Comments
 (0)