LeetCode 760. 找出变位映射(哈希)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 760. 找出变位映射(哈希)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給定兩個列表 A and B,并且 B 是 A 的變位(即 B 是由 A 中的元素隨機排列后組成的新列表)。
我們希望找出一個從 A 到 B 的索引映射 P 。
一個映射 P[i] = j 指的是列表 A 中的第 i 個元素出現于列表 B 中的第 j 個元素上。
列表 A 和 B 可能出現重復元素。如果有多于一種答案,輸出任意一種。
例如,給定 A = [12, 28, 46, 32, 50] B = [50, 12, 32, 46, 28]需要返回 [1, 4, 3, 2, 0] P[0] = 1 ,因為 A 中的第 0 個元素出現于 B[1], 而且 P[1] = 4 因為 A 中第 1 個元素出現于 B[4],以此類推。注: A, B 有相同的長度,范圍為 [1, 100]。 A[i], B[i] 都是范圍在 [0, 10^5] 的整數。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/find-anagram-mappings
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:vector<int> anagramMappings(vector<int>& A, vector<int>& B) {unordered_map<int,unordered_set<int>> m;for(int i = 0; i < B.size(); ++i)m[B[i]].insert(i);vector<int> ans(A.size());for(int i = 0; i < A.size(); ++i){ans[i] = *(m[A[i]].begin());m[A[i]].erase(m[A[i]].begin());}return ans;} };4 ms 9.1 MB
長按或掃碼關注我的公眾號,一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 760. 找出变位映射(哈希)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 第 197 场周赛(4
- 下一篇: LeetCode 267. 回文排列 I