class Solution {
public:
vector<int> goodIndices(vector<int>& nums, int k) {
int n = nums.size();
vector<int> f(n), g(n); //以下标i结尾递减, 递增长度
f[0] = 1;
for(int i = 1; i < n; i ++)
{
if(nums[i] <= nums[i - 1]) f[i] = f[i - 1] + 1;
else f[i] = 1;
}
g[n - 1] = 1;
for(int i = n - 2; i >= 0; i --)
{
if(nums[i] <= nums[i + 1]) g[i] = g[i + 1] + 1;
else g[i] = 1;
}
vector<int> res;
for(int i = k; i + k < n; i ++)
{
if(f[i - 1] >= k && g[i + 1] >= k)
res.push_back(i);
}
return res;
}
};
LeetCode 2420. 找到所有好下标
最新推荐文章于 2024-05-11 11:36:37 发布