LeetCode:用HashMap解决问题

LeetCode:用HashMap解决问题

Find Anagram Mappings

 1 class Solution {
 2     public int[] anagramMappings(int[] A, int[] B) {
 3         Map<Integer, Integer> D = new HashMap();
 4         for (int i = 0; i < B.length; ++i)
 5             D.put(B[i], i);
 6 
 7         int[] ans = new int[A.length];
 8         int t = 0;
 9         for (int x: A)
10             ans[t++] = D.get(x);
11         return ans;
12     }
13 }

思考:用字典来解决问题,巧妙将数组编号转换为页码,然后快速查表

 771.Jewels and Stones

class Solution {
    public int numJewelsInStones(String J, String S) {
        int result = 0;
        HashMap<Character,Integer> jMap = new HashMap<>();
        for(int i=0;i<J.length();i++)
            jMap.put(J.charAt(i),i);
        for(int i=0;i<S.length();i++)
        {
            if(jMap.containsKey(S.charAt(i)))
                result++;
        }
        return result;
    }
}

  

原文地址:https://www.cnblogs.com/MrSaver/p/8371180.html