Re: [閒聊] 每日leetcode
看板Marginalman作者enmeitiryous (enmeitiryous)時間1年前 (2024/08/03 10:10)推噓2(2推 0噓 0→)留言2則, 2人參與討論串625/1554 (看更多)
1460 make two arrays equal by reversinng subarray
題目:
給你兩個包含integer的vector: arr和target,回傳如果我們能夠無限次reverse
arr中的subarray,我們是否能將arr轉變成target,可以則回傳true,否則回傳false
思路:
因為最沒效率的方法我們能透過一次次翻轉arr中的長度為2的subarray來把任一元素
放置到正確位子,所以只要arr中元素的組成和數量都和target的相同則必定可以轉換
所以針對兩個vector紀錄各自元素出現次數比較有不同則回傳false即可
bool canBeEqual(vector<int>& target, vector<int>& arr) {
int n=arr.size();
unordered_map<int,int> fo_nums;
unordered_map<int,int> fo_tar;
for(int i=0;i<n;++i){
fo_nums[arr[i]]++;
fo_tar[target[i]]++;
}
for(auto k:fo_tar){
if(fo_nums[k.first]!=k.second){
return false;
}
}
return true;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.238.8 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1722651008.A.16E.html
推
08/03 10:20,
1年前
, 1F
08/03 10:20, 1F
推
08/03 11:16,
1年前
, 2F
08/03 11:16, 2F
討論串 (同標題文章)
完整討論串 (本文為第 625 之 1554 篇):