题目地址:
https://leetcode.com/problems/find-anagram-mappings/
给定两个数组 A A A和 B B B,它们数字构成一样,题目保证 A A A里数字各不相同。要求返回一个数组 C C C,使得 B [ C [ i ] ] = A [ i ] B[C[i]]=A[i] B[C[i]]=A[i]。
代码如下:
import java.util.HashMap;
import java.util.Map;
public class Solution {
public int[] anagramMappings(int[] A, int[] B) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < B.length; i++) {
map.put(B[i], i);
}
for (int i = 0; i < A.length; i++) {
A[i] = map.get(A[i]);
}
return A;
}
}
时空复杂度 O ( l A ) O(l_A) O(lA)。