https://leetcode.com/problems/find-the-power-of-k-size-subarrays-i/description/
給定一個長度為 n
的整數陣列 nums
和正整數 k
定義 power of array :
求出 nums
中所有長度為 k
之子陣列 power
回傳長度 n - k + 1
的整數陣列,其中 results[i]
是子陣列 nums[i..(i + k - 1)]
的 power
C++ 參考答案:
class Solution
{
public:
vector<int> resultsArray(vector<int> &nums, int k)
{
if (k == 1)
return nums;
const int n = nums.size();
vector<int> ans(n - k + 1, -1);
for (int i = 0, len = 1; i < n - 1; ++i)
{
if (nums[i] + 1 == nums[i + 1])
++len;
else
len = 1;
if (len >= k)
ans[i - k + 2] = nums[i + 1];
}
return ans;
}
};
Go 參考答案:
func resultsArray(nums []int, k int) []int {
if k == 1 {
return nums
}
n := len(nums)
ans := make([]int, n-k+1)
len := 1
for i := 1; i < n; i++ {
if nums[i-1]+1 == nums[i] {
len++
} else {
len = 1
}
if i >= k-1 {
if len >= k {
ans[i-k+1] = nums[i]
} else {
ans[i-k+1] = -1
}
}
}
return ans
}
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up