> For the complete documentation index, see [llms.txt](https://protegejj.gitbook.io/algorithm-practice/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://protegejj.gitbook.io/algorithm-practice/leetcode/hash-table/760-find-anagram-mappings.md).

# 760 Find Anagram Mappings

## 760. [Find Anagram Mappings](https://leetcode.com/problems/find-anagram-mappings/description/)

## 1. Question

Given two lists`A`and`B`, and`B`is an anagram of`A`.`B`is an anagram of`A`means`B`is made by randomizing the order of the elements in`A`.

We want to find anindex mapping`P`, from`A`to`B`. A mapping`P[i] = j`means the`i`th element in`A`appears in`B`at index`j`.

These lists`A`and`B`may contain duplicates. If there are multiple answers, output any of them.

For example, given

```
A = [12, 28, 46, 32, 50]
B = [50, 12, 32, 46, 28]
```

We should return

```
[1, 4, 3, 2, 0]
```

as`P[0] = 1`because the`0`th element of`A`appears at`B[1]`, and`P[1] = 4`

because the`1`st element of`A`appears at`B[4]`, and so on.

**Note:**

1. `A, B`have equal lengths in range`[1, 100]`.
2. `A[i], B[i]`are integers in range`[0, 10^5]`.

## 2. Implementation

(1)Hash Table

```java
class Solution {
    public int[] anagramMappings(int[] A, int[] B) {
        if (A.length != B.length) {
            return new int[0];
        }

        int[] res = new int[A.length];
        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++) {
            res[i] = map.get(A[i]);
        }
        return res;
    }
}
```

## 3. Time & Space Complexity

Hash Table: 时间复杂度O(n)，空间复杂度O(n)
