一、下乙個更大元素 i
給兩個沒有重複元素的陣列nums1
和nums2
,其中nums1
是nums2
的子集。請找出nums1
中每個元素在nums2
中的下乙個比其大的值。nums1
中數字x
的下乙個更大元素是指x
在nums2
中對應位置的右邊的第乙個比x
大的元素。如果不存在,對應位置輸出 -1 。
public
class
solution
stack.
push
(nums[i]);
}while
(!stack.
empty()
)for
(int i =
0; i < findnums.length; i++
)return res;
}}
二、下乙個更大元素ⅱ
給定乙個迴圈陣列(最後乙個元素的下乙個元素是陣列的),輸出每個元素的下乙個更大元素。數字x的下乙個更大元素是按陣列遍歷順序,這個數字之後的第乙個比它更大的數,這意味值應該迴圈搜尋他的下乙個更大的數。如果不存在,則輸出-1。
輸入:[1
,2,1
]輸出:[2
,-1,
2]解釋: 第乙個 1 的下乙個更大的數是 2;
數字 2 找不到下乙個更大的數;
第二個 1 的下乙個最大的數需要迴圈搜尋,結果也是 2。
建立【單調遞減棧】,對原陣列遍歷:
class
solution
stack.
push
(index)
;// 入棧的是nums陣列的下標
}return res;
}}
下乙個更大的數
1 問題描述 兩個不重複元素的陣列 nums1 和 nums2,其中nums1 是 nums2 的子集。在nums2相應位置找到nums1所有元素的下乙個更大數字。nums1 中數字 x 的下乙個更大元素是指 x 在 nums2 中對應位置的右邊的第乙個比 x 大的元素。如果不存在,對應位置輸出 1...
下乙個更大的元素
給定乙個迴圈陣列 最後乙個元素的下乙個元素是陣列的第乙個元素 輸出每個元素的下乙個更大元素。數字 x 的下乙個更大的元素是按陣列遍歷順序,這個數字之後的第乙個比它更大的數,這意味著你應該迴圈地搜尋它的下乙個更大的數。如果不存在,則輸出 1。示例 1 輸入 1,2,1 輸出 2,1,2 解釋 第乙個 ...
LeetCode刷題 503下乙個更大元素 二
還是今天的每日一題,今天的是乙個中等難度的題目。先看一下題目描述吧。簡單解釋一下就是尋找陣列中每乙個元素的下乙個比它大的元素,這個陣列是乙個迴圈陣列。看到這個題目,果然我只想得到暴力解法。所謂的暴力解法,就是遍歷陣列中每乙個元素,然後再從當前元素開始再遍歷陣列,直到找到比當前元素大的下乙個元素,然後...