Re: [閒聊] 每日leetcode

作者: enmeitiryous (enmeitiryous)   2024-08-03 10:10:06
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;
}
作者: sustainer123 (caster)   2024-08-03 10:20:00
大師
作者: dont   2024-08-03 11:16:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com