LeetCode 第 134 场双周赛. T1 - T3
原题链接
简单
作者:
autumn_0
,
2024-07-07 00:13:29
,
所有人可见
,
阅读 4
第一题
class Solution {
public:
int numberOfAlternatingGroups(vector<int>& colors) {
int n = colors.size();
int sum = 0;
for(int i = 2; i < n; i ++ )
{
if(colors[i] != colors[i - 1] && colors[i] == colors[i - 2])
sum ++ ;
}
if(colors[0] != colors[n - 1] && colors[0] == colors[n - 2]) sum ++ ;
if(colors[1] != colors[0] && colors[1] == colors[n - 1]) sum ++ ;
return sum;
}
};
第二题
class Solution {
public:
long long maximumPoints(vector<int>& a, int currentEnergy) {
sort(a.begin(), a.end());
int n = a.size();
if(currentEnergy < a[0]) return 0;
long long sum = currentEnergy;
for(int i = 1; i < n; i ++ ) sum += a[i];
return sum / a[0];
}
};
第三题
class Solution {
public:
int numberOfAlternatingGroups(vector<int>& colors, int k) {
int n = colors.size();
for(int i = 0; i < n; i ++ ) colors.push_back(colors[i]);
int last = 0;
for(int i = 1; i + 1 < k; i ++ )
if(colors[i] != colors[i - 1] && colors[i] != colors[i + 1])
last ++ ;
int ans = 0;
if(last == k - 2) ans ++ ;
for(int i = 1; i < n; i ++ )
{
if(colors[i] != colors[i - 1] && colors[i] != colors[i + 1]) last -- ;
int r = i + k - 2;
if(colors[r] != colors[r - 1] && colors[r] != colors[r + 1]) last ++ ;
if(last == k - 2) ans ++ ;
}
return ans;
}
};