comments | difficulty | edit_url | rating | source | tags | |
---|---|---|---|---|---|---|
true |
Easy |
1166 |
Biweekly Contest 139 Q1 |
|
There are n
mountains in a row, and each mountain has a height. You are given an integer array height
where height[i]
represents the height of mountain i
, and an integer threshold
.
A mountain is called stable if the mountain just before it (if it exists) has a height strictly greater than threshold
. Note that mountain 0 is not stable.
Return an array containing the indices of all stable mountains in any order.
Example 1:
Input: height = [1,2,3,4,5], threshold = 2
Output: [3,4]
Explanation:
- Mountain 3 is stable because
height[2] == 3
is greater thanthreshold == 2
. - Mountain 4 is stable because
height[3] == 4
is greater thanthreshold == 2
.
Example 2:
Input: height = [10,1,10,1,10], threshold = 3
Output: [1,3]
Example 3:
Input: height = [10,1,10,1,10], threshold = 10
Output: []
Constraints:
2 <= n == height.length <= 100
1 <= height[i] <= 100
1 <= threshold <= 100
We directly traverse the mountains starting from index
After the traversal, we return the result array.
The time complexity is
class Solution:
def stableMountains(self, height: List[int], threshold: int) -> List[int]:
return [i for i in range(1, len(height)) if height[i - 1] > threshold]
class Solution {
public List<Integer> stableMountains(int[] height, int threshold) {
List<Integer> ans = new ArrayList<>();
for (int i = 1; i < height.length; ++i) {
if (height[i - 1] > threshold) {
ans.add(i);
}
}
return ans;
}
}
class Solution {
public:
vector<int> stableMountains(vector<int>& height, int threshold) {
vector<int> ans;
for (int i = 1; i < height.size(); ++i) {
if (height[i - 1] > threshold) {
ans.push_back(i);
}
}
return ans;
}
};
func stableMountains(height []int, threshold int) (ans []int) {
for i := 1; i < len(height); i++ {
if height[i-1] > threshold {
ans = append(ans, i)
}
}
return
}
function stableMountains(height: number[], threshold: number): number[] {
const ans: number[] = [];
for (let i = 1; i < height.length; ++i) {
if (height[i - 1] > threshold) {
ans.push(i);
}
}
return ans;
}