终于有比较简单的题目了
3254. Find the Power of K-Size Subarrays I
给一个长度为n的矩阵nums
和一个正整数k
power定义为
如果这个矩阵是连续(nums[i]=nums[i-1]+1)且递增时,power就为最大的那个数字
否则power=-1
请找出nums中所有长度为k的矩阵的power并回传
思路:
就sliding windows
用一个counter
如果nums[i]=nums[i-1]+1 , counter就+1
否则counter=1
如果counter>=k
power=nums[i]
反之 power=-1
golang code :
func resultsArray(nums []int, k int) []int {
n := len(nums)
ans, idx := make([]int, n-k+1), 0
cnt := 1
for i := 1; i < k; i++ {
if nums[i] == nums[i-1]+1 {
cnt++
}else{
cnt = 1
}
}
if cnt == k {
ans[idx] = nums[k-1]
idx++
}else{
ans[idx]=-1
idx++
}
for i := k; i < n; i++ {
if nums[i] == nums[i-1]+1 {
cnt++
} else {
cnt = 1
}
if cnt >= k {
ans[idx] = nums[i]
} else {
ans[idx] = -1
}
idx++
}
return ans
}