3254. 长度为 K 的子数组的能量值 I - 力扣(LeetCode)
解题思路:滑动窗口。
1.总共子数组数量(窗口数量)为n-k+1;
2.每个子数组内依次滑动,记录满足递增的最大值。当条件不满足时,记录最大值为-1,并跳出当前子数组滑动窗口。
3.窗口尾部递增。
cpp
class Solution {
public:
vector<int> resultsArray(vector<int>& nums, int k) {
int n=nums.size();
//滑动窗口
vector<int>res;
//总窗口数n-k+1
for(int i=0;i<n-k+1;i++){
int curmax=nums[i];
for(int j=i+1;j<i+k;j++){
if(nums[j]-nums[j-1]==1){
curmax=max(nums[j],nums[j-1]);
}
else{
curmax=-1;
break;
}
}
res.push_back(curmax);
}
return res;
}
};