diff options
Diffstat (limited to 'challenge-322/deadmarshal/java/Ch2.java')
| -rw-r--r-- | challenge-322/deadmarshal/java/Ch2.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/challenge-322/deadmarshal/java/Ch2.java b/challenge-322/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..427b527a79 --- /dev/null +++ b/challenge-322/deadmarshal/java/Ch2.java @@ -0,0 +1,24 @@ +import java.util.Arrays; + +public class Ch2 { + public static void main(String[] args) { + System.out.println(Arrays.toString(rank_array(new int[]{55, 22, 44, 33}))); + System.out.println(Arrays.toString(rank_array(new int[]{10, 10, 10}))); + System.out.println(Arrays.toString(rank_array(new int[]{5, 1, 1, 4, 3}))); + } + + private static int[] rank_array(int[] arr) { + int n = arr.length; + int[] t = arr.clone(); + Arrays.sort(t); + int m = 0; + for (int i = 0; i < n; ++i) { + if ((i == 0) || (t[i] != t[i - 1])) t[m++] = t[i]; + } + int[] ans = new int[n]; + for (int i = 0; i < n; ++i) + ans[i] = Arrays.binarySearch(t, 0, m, arr[i]) + 1; + return ans; + } +} + |
