/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
System.
out.
println(Arrays.
toString(rank
(new double[] {1,
3,
2,
2,
33,
1}))); System.
out.
println(Arrays.
toString(rank
(new double[] {1,
10,
3,
44,
5,
2,
5}))); }
public static int[] rank(double[] nums)
{
for(int i=0; i<idx.length; i++) idx[i] = i;
Arrays.
sort(idx,
(a, b
) -> (Double.
compare(nums
[a
], nums
[b
])));
int[] rank = new int[nums.length];
for(int i=0, j=1; i<idx.length; i++)
{
rank[idx[i]] = j;
if(i < idx.length - 1 && nums[idx[i]] != nums[idx[i+1]]) j++;
}
return rank;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJICBTeXN0ZW0ub3V0LnByaW50bG4oQXJyYXlzLnRvU3RyaW5nKHJhbmsobmV3IGRvdWJsZVtdIHsxLDMsMiwyLDMzLDF9KSkpOwoJICBTeXN0ZW0ub3V0LnByaW50bG4oQXJyYXlzLnRvU3RyaW5nKHJhbmsobmV3IGRvdWJsZVtdIHsxLDEwLDMsNDQsNSwyLDV9KSkpOwoJfQoJCglwdWJsaWMgc3RhdGljIGludFtdIHJhbmsoZG91YmxlW10gbnVtcykKCXsKCSAgSW50ZWdlcltdIGlkeCA9IG5ldyBJbnRlZ2VyW251bXMubGVuZ3RoXTsKCSAgZm9yKGludCBpPTA7IGk8aWR4Lmxlbmd0aDsgaSsrKSBpZHhbaV0gPSBpOwoJICBBcnJheXMuc29ydChpZHgsIChhLCBiKSAtPiAoRG91YmxlLmNvbXBhcmUobnVtc1thXSwgbnVtc1tiXSkpKTsKCQoJICBpbnRbXSByYW5rID0gbmV3IGludFtudW1zLmxlbmd0aF07CgkgIGZvcihpbnQgaT0wLCBqPTE7IGk8aWR4Lmxlbmd0aDsgaSsrKSAKCSAgewoJICAJcmFua1tpZHhbaV1dID0gajsKCSAgCWlmKGkgPCBpZHgubGVuZ3RoIC0gMSAmJiBudW1zW2lkeFtpXV0gIT0gbnVtc1tpZHhbaSsxXV0pIGorKzsKCSAgfQoJICByZXR1cm4gcmFuazsKCX0JCgkKfQ==
[1, 3, 2, 2, 4, 1]
[1, 5, 3, 6, 4, 2, 4]