鏈結求解迴圈陣列中元素的下乙個更大元素
中等
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...