leetcode503 下乙個更大的元素

2021-10-08 01:32:13 字數 888 閱讀 8873

難度:中等

題目:給定乙個迴圈陣列(最後乙個元素的下乙個元素是陣列的第乙個元素),輸出每個元素的下乙個更大元素。數字 x 的下乙個更大的元素是按陣列遍歷順序,這個數字之後的第乙個比它更大的數,這意味著你應該迴圈地搜尋它的下乙個更大的數。如果不存在,則輸出 -1。

示例 1:

輸入: [1,2,1]

輸出: [2,-1,2]

解釋: 第乙個 1 的下乙個更大的數是 2;

數字 2 找不到下乙個更大的數;

第二個 1 的下乙個最大的數需要迴圈搜尋,結果也是 2。

因為剛做了每日溫度這道題,學會了單調棧的方法。所以遇到陣列中求後面比它大還是比它小的數是誰,除了用暴力解法,又多了一種解法,使用單調棧。這道題也是一樣的,不過需要注意的是,陣列是迴圈陣列,我們需要進行兩輪操作。兩輪操作後將棧中剩餘的數置為-1.

**:

class

solution

stack.

push

(i);

}for

(int i=

0;iwhile

(!stack.

isempty()

)return res;

}}

暴力解法:

public

static

int[

]nextgreaterelements

(int

nums)

for(

int i =

0; i < nums.length; i++

) j++

; count++;}

}return res;

}

LeetCode 503 下乙個更大元素II

給定乙個迴圈陣列 最後乙個元素的下乙個元素是陣列的第乙個元素 輸出每個元素的下乙個更大元素。數字 x 的下乙個更大的元素是按陣列遍歷順序,這個數字之後的第乙個比它更大的數,這意味著你應該迴圈地搜尋它的下乙個更大的數。如果不存在,則輸出 1。示例 1 輸入 1,2,1 輸出 2,1,2 解釋 第乙個 ...

Leetcode 503 下乙個更大元素II

給定乙個迴圈陣列 最後乙個元素的下乙個元素是陣列的第乙個元素 輸出每個元素的下乙個更大元素。數字 x 的下乙個更大的元素是按陣列遍歷順序,這個數字之後的第乙個比它更大的數,這意味著你應該迴圈地搜尋它的下乙個更大的數。如果不存在,則輸出 1。示例 1 輸入 1,2,1 輸出 2,1,2 解釋 第乙個 ...

Leetcode503 下乙個更大元素 II 題解

給定乙個迴圈陣列 最後乙個元素的下乙個元素是陣列的第乙個元素 輸出每個元素的下乙個更大元素。數字 x 的下乙個更大的元素是按陣列遍歷順序,這個數字之後的第乙個比它更大的數,這意味著你應該迴圈地搜尋它的下乙個更大的數。如果不存在,則輸出 1。建立乙個棧,來儲存下標值,我們用max index來記錄最大...