Sort the Jumbled Numbers
给一个mapping数组, 给一个数组nums, 求按照mapping数组转化后的数字的排列nums.
这题就是存一下转化后的数字, 然后排列即可. 需要注意java里面的lambda不能比较primitive type
class Solution {
public int[] sortJumbled(int[] mapping, int[] nums) {
Integer[] nn = new Integer[nums.length];
Map<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < nums.length; i++){
nn[i] = nums[i];
map.put(nums[i], map.getOrDefault(nums[i], convert(nums[i],mapping)));
}
Arrays.sort(nn, (a, b) -> (map.get(a) - map.get(b)));
for(int i = 0; i < nums.length; i++){
nums[i] = nn[i];
}
return nums;
}
private int convert(int n, int[] mapping){
StringBuffer sb = new StringBuffer();
if(n == 0)
return mapping[0];
while(n != 0){
sb.insert(0,mapping[n % 10]);
n /= 10;
}
return Integer.valueOf(sb.toString());
}
}