每日一題 503 下乙個更大元素 II

2022-06-19 08:03:11 字數 659 閱讀 1194

鏈結求解迴圈陣列中元素的下乙個更大元素

中等

class solution }}

return nextbigger;

}};

暴力求解的時間複雜度\(o(n^2)\),不過也能剛好ac

這是我個人的直接暴力,這裡對迴圈陣列也處理的比較笨

class solution {

public:

vectornextgreaterelements(vector& nums) {

int length=nums.size();

vectornextbigger(length,-1);

stackorder;

for(int i=0;i<2*length;i++){

int index=i%length;

while(!order.empty()&&nums[order.top()]是暴力求解的優化。實際上對於乙個遞減的序列 3 2 1 ,他們的下乙個更大的元素都是相同的,從優化的角度無需重複求解。

利用單調棧,棧內儲存中陣列nums的下標,對應的值單調不公升

所以對遍歷到的任意乙個nums[i]:

遍歷的次數為2*nums.size()-1即可,保證最後乙個元素也能完成遍歷一次。

迴圈陣列處理直接index=索引%長度

503 下乙個更大元素

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

503 下乙個更大元素 II

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

503 下乙個更大元素 II

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