2191 - Sort the Jumbled Numbers
JAVA
class Solution { public int[] sortJumbled(int[] mapping, int[] nums) { int n = nums.length; int[][] arr = new int[n][2]; for (int i = 0; i < n; ++i) { int x = nums[i]; int y = x == 0 ? mapping[0] : 0; int k = 1; for (; x > 0; x /= 10) { y += k * mapping[x % 10]; k *= 10; } arr[i] = new int[] {y, i}; } Arrays.sort(arr, (a, b) -> a[0] == b[0] ? a[1] - b[1] : a[0] - b[0]); int[] ans = new int[n]; for (int i = 0; i < n; ++i) { ans[i] = nums[arr[i][1]]; } return ans; } }
C++
class Solution { public: vector<int> sortJumbled(vector<int>& mapping, vector<int>& nums) { int n = nums.size(); vector<pair<int, int>> arr(n); for (int i = 0; i < n; ++i) { int x = nums[i]; int y = x == 0 ? mapping[0] : 0; int k = 1; for (; x; x /= 10) { y += k * mapping[x % 10]; k *= 10; } arr[i] = {y, i}; } sort(arr.begin(), arr.end()); vector<int> ans; for (auto& [_, i] : arr) { ans.push_back(nums[i]); } return ans; } };
Comments
Post a Comment