Re: [閒聊] 每日leetcode

作者: sixB (6B)   2024-10-01 08:49:14
1497. Check If Array Pairs Are Divisible by k
給一個int array
array裡面 每個數都跟另一個數組隊
兩個數加起來要可以被k整除
每個數(by index)都只能用一次
##
每個數都%k轉正
先sum起來看看能不能%k
check the total number of i equals to k-i
n跟k都是1e5
想搜arr或check都行
arr會搜到重複的
check會搜到一堆0==
但是開 map還是比vector慢
應該吧
using ll = long long;
class Solution {
public:
bool canArrange(vector<int>& arr, int k) {
ll sum = 0;
vector<int> check(k, 0);
int mx = k;
for(int& i: arr){
i = ((i % k) + k) % k;
sum += i;
check[i]++;
}
if(sum % k != 0) return false;
cout << "a\n";
if(check[0] % 2) return false;
for(int i = 1, j = mx - i; i <= j ; i++, j = mx - i){
if(check[i] != check[j]) return false;
}
return true;
}
};

Links booklink

Contact Us: admin [ a t ] ucptt.com