diff options
Diffstat (limited to 'challenge-334/deadmarshal/java')
| -rw-r--r-- | challenge-334/deadmarshal/java/Ch1.java | 15 | ||||
| -rw-r--r-- | challenge-334/deadmarshal/java/Ch2.java | 30 |
2 files changed, 45 insertions, 0 deletions
diff --git a/challenge-334/deadmarshal/java/Ch1.java b/challenge-334/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..a710be4eab --- /dev/null +++ b/challenge-334/deadmarshal/java/Ch1.java @@ -0,0 +1,15 @@ +public class Ch1 { + public static void main(String[] args) { + System.out.println(range_sum(new int[]{-2, 0, 3, -5, 2, -1}, 0, 2)); + System.out.println(range_sum(new int[]{1, -2, 3, -4, 5}, 1, 3)); + System.out.println(range_sum(new int[]{1, 0, 2, -1, 3}, 3, 4)); + System.out.println(range_sum(new int[]{-5, 4, -3, 2, -1, 0}, 0, 3)); + System.out.println(range_sum(new int[]{-1, 0, 2, -3, -2, 1}, 0, 2)); + } + + private static int range_sum(int[] arr, int x, int y) { + int s = 0; + for (int i = x; i <= y; i++) s += arr[i]; + return s; + } +}
\ No newline at end of file diff --git a/challenge-334/deadmarshal/java/Ch2.java b/challenge-334/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..8ab7667dd3 --- /dev/null +++ b/challenge-334/deadmarshal/java/Ch2.java @@ -0,0 +1,30 @@ +public class Ch2 { + public static void main(String[] args) { + System.out.println(nearest_valid_point(new int[][]{{1, 2}, {3, 1}, {2, 4}, {2, 3}}, + 3, 4)); + System.out.println(nearest_valid_point(new int[][]{{3, 4}, {2, 3}, {1, 5}, {2, 5}}, + 2, 5)); + System.out.println(nearest_valid_point(new int[][]{{2, 2}, {3, 3}, {4, 4}}, + 1, 1)); + System.out.println(nearest_valid_point(new int[][]{{0, 1}, {1, 0}, {0, 2}, {2, 0}}, + 0, 0)); + System.out.println(nearest_valid_point(new int[][]{{5, 6}, {6, 5}, {5, 4}, {4, 5}}, + 5, 5)); + } + + private static int nearest_valid_point(int[][] arr, int x, int y) { + int res = -1, min = Integer.MAX_VALUE; + for (int i = 0; i < arr.length; ++i) { + int a = arr[i][0], b = arr[i][1]; + if (a == x || b == y) { + int d = Math.abs(a - x) + Math.abs(b - y); + if (d < min) { + min = d; + res = i; + } + } + } + return res; + } +} + |
