1010. Pairs of Songs With Total Durations Divisible by 60

ss
Feb 13, 2021

--

這題我一開始只想得到暴力法, 算很好理解我就不寫了

我在看hint之後, 才了解到我們不用先加完在 % 60, 可以先%60在相加,

這個給了我很大的提示,我馬上作一版出來, 這邊注意因為會有重複的數字, 所以我們用map

另外還有一個很特別的值 60, 如果我們是用60- target %60 去找, target如果是60會變成是我們在hashmap裡找60, 但正確來說這邊應該要改找0, 所以我們會在60- target %60後, 在%一次60

map的這個操作跟Subarray Sum Equals K 很像

class Solution {
public:
int numPairsDivisibleBy60(vector<int>& time) {
unordered_map<int, int> table;
int res = 0;
for(int i = 0;i<time.size();i++){
int leave = 60 - (time[i] % 60);
leave%=60;
if(table.count(leave)){
res+= table[leave];
}
table[time[i] % 60]++;
}
return res;
}
};

--

--

ss
ss

No responses yet