由於陣列nums1是nums2的子集,所以如果找出陣列nums2中所有的數的更大的數,那麼nums1的自然也就有了。
額外利用乙個map集合和乙個棧stack,map來儲存nums2中元素以及比其更大的元素的對映。stack用來儲存暫時找不到比自己更大的元素的元素。通過遍歷nums2,將nums2中的元素依次入棧,但在每次入棧之前,若棧stack非空且該元素大於棧頂元素,那麼該元素就是比棧頂元素下乙個更大的元素,將他們存入map集合中,並將棧頂元素彈出。否則直接將其入棧。
class solution
stack.push(num);
}for (int i = 0; i < nums1.length; i++)
return result;}}
下乙個更大元素 I
給定兩個 沒有重複元素 的陣列 nums1 和 nums2 其中nums1 是 nums2 的子集。找到 nums1 中每個元素在 nums2 中的下乙個比其大的值。nums1 中數字 x 的下乙個更大元素是指 x 在 nums2 中對應位置的右邊的第乙個比 x 大的元素。如果不存在,對應位置輸出 ...
下乙個更大元素 I 單調棧
給定兩個 沒有重複元素 的陣列 nums1 和 nums2 其中nums1 是 nums2 的子集。找到 nums1 中每個元素在 nums2 中的下乙個比其大的值。nums1 中數字 x 的下乙個更大元素是指 x 在 nums2 中對應位置的右邊的第乙個比 x 大的元素。如果不存在,對應位置輸出 ...
LeetCode 下乙個更大元素 I
給定兩個沒有重複元素的陣列nums1和nums2,其中nums1是nums2的子集。找到nums1中每個元素在nums2中的下乙個比其大的值。nums1中數字x的下乙個更大元素是指x在nums2中對應位置的右邊的第乙個比x大的元素。如果不存在,對應位置輸出 1。示例 1 輸入 nums1 4,1,2...