Find Anagram Mappings

http://www.lintcode.com/zh-cn/problem/find-anagram-mappings/

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;

public class Solution {
    /**
     * @param A: lists A
     * @param B: lists B
     * @return: the index mapping
     */
    public int[] anagramMappings(int[] A, int[] B) {
        // Write your code here
        Map> map = new HashMap<>();
        for (int i = 0; i < B.length; i++) {
            int num = B[i];
            LinkedList list = map.get(num);
            if (list == null) {
                list = new LinkedList<>();
                map.put(num, list);
            }
            list.add(i);
        }
        int[] res = new int[A.length];
        for (int i = 0; i < A.length; i++) {
            int num = A[i];
            LinkedList list = map.get(num);
            res[i] = list.removeFirst();
        }
        return res;
    }
}

你可能感兴趣的:(Find Anagram Mappings)