Problem 2765. 最长交替子数组
思路
数据范围很小直接暴力枚举,枚举左端点和右端点,判断是否符合题目要求。
Accode
class Solution {
public:
int alternatingSubarray(vector<int>& nums) {
int ans = -1;
int n = nums.size();
vector<int> q = nums;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
bool flag = false;
for (int k = i; k <= j; k += 2) {
if (q[k] != q[i]) {
flag = true;
break;
}
}
for (int k = i + 1; k <= j; k += 2) {
if (q[k] != q[i] + 1) {
flag = true;
break;
}
}
if (!flag)
ans = max(ans, j - i + 1);
}
}
return ans;
}
};
时间复杂度:$o(n^3)$
附上题单(leetcode)
1446. 连续字符 1165
1869. 哪种连续子字符串更长 1205
1957. 删除字符使字符串变好 1358
2110. 股票平滑下跌阶段的数目 1408
228. 汇总区间
2760. 最长奇偶子数组 1420
1887. 使数组元素相等的减少操作次数 1428
2038. 如果相邻两个颜色均相同则删除当前颜色 1468
1759. 统计同质子字符串的数目 1491
1578. 使绳子变成彩色的最短时间 1574
1839. 所有元音按顺序排布的最长子字符串 1580