下乙個更大元素 I 單調棧

2021-10-06 23:17:59 字數 541 閱讀 8488

給定兩個 沒有重複元素 的陣列 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每個元素在 nums2 中的下乙個比其大的值。

nums1 中數字 x 的下乙個更大元素是指 x 在 nums2 中對應位置的右邊的第乙個比 x 大的元素。如果不存在,對應位置輸出 -1 。

1.暴力搜尋,對nums2中每乙個元素依次向右找到第乙個比它大的數

2.單調棧,被壓入棧中的元素應該具有單調性,例如1,3,4,2四個元素,按照單調遞減棧的順序入棧:

class

solution

st.push

(i);

}while

(!st.

empty()

)for

(int i=

0;isize()

;i++

) ans.

push_back

(mp[nums1[i]])

;return ans;}}

;

單調棧之下乙個更大元素I

給定兩個沒有重複元素的陣列 nums1 和 nums2 其中nums1 是 nums2 的子集。找到 nums1 中每個元素在 nums2 中的下乙個比其大的值。nums1 中數字 x 的下乙個更大元素是指 x 在 nums2 中對應位置的右邊的第乙個比 x 大的元素。如果不存在,對應位置輸出 1。...

單調棧 496 下乙個更大元素 I

給定兩個 沒有重複元素 的陣列 nums1 和 nums2 其中nums1 是 nums2 的子集。找到 nums1 中每個元素在 nums2 中的下乙個比其大的值。nums1 中數字 x 的下乙個更大元素是指 x 在 nums2 中對應位置的右邊的第乙個比 x 大的元素。如果不存在,對應位置輸出 ...

單調棧解下乙個更大元素

給你兩個沒有重複元素的陣列nums1和nums2,其中nums1是nums2 的子集。請你找出nums1中每個元素在nums2中的下乙個比其大的值。nums1中數字x的下乙個更大元素是指x在nums2中對應位置的右邊的第乙個比x大的元素。如果不存在,對應位置輸出 1。public int nextg...