# LeetCode 3254. Find the Power of K-Size Subarrays I https://leetcode.com/problems/find-the-power-of-k-size-subarrays-i/description/ ## 題目大意 給定一個長度為 `n` 的整數陣列 `nums` 和正整數 `k` 定義 power of array : - 若陣列中的所有元素都是連續且升序排序,則為陣列的最大元素 - 否則,為 -1 求出 `nums` 中所有長度為 `k` 之子陣列 power 回傳長度 `n - k + 1` 的整數陣列,其中 `results[i]` 是子陣列 `nums[i..(i + k - 1)]` 的 power <div style="text-align: center;"> <img src="https://pbs.twimg.com/media/EX7UnaUXkAEKw9d.png" alt="Vergil: What form of power is this" style="width: 50%;"/> </div> ## 思考 C++ 參考答案: ```cpp! 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 參考答案: ```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 } ```