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