We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 6a42cca commit 7d1189eCopy full SHA for 7d1189e
C++/find-all-good-indices.cpp
@@ -0,0 +1,28 @@
1
+// Time: O(n)
2
+// Space: O(n)
3
+
4
+// prefix sum
5
+class Solution {
6
+public:
7
+ vector<int> goodIndices(vector<int>& nums, int k) {
8
+ vector<int> left(size(nums), 1);
9
+ for (int i = 1; i + 1 < size(nums); ++i) {
10
+ if (nums[i] <= nums[i - 1]) {
11
+ left[i] = left[i - 1] + 1;
12
+ }
13
14
+ vector<int> right(size(nums), 1);
15
+ for (int i = size(nums) - 2; i >= 1; --i) {
16
+ if (nums[i] <= nums[i + 1]) {
17
+ right[i] = right[i + 1] + 1;
18
19
20
+ vector<int> result;
21
+ for (int i = k; i + k < size(nums); ++i) {
22
+ if (min(left[i - 1], right[i + 1]) >= k) {
23
+ result.emplace_back(i);
24
25
26
+ return result;
27
28
+};
0 commit comments