day48
单调栈的三道题:
739、每日温度:单调栈里只存下标,遍历数组元素与栈顶元素进行比较,若小于等于栈顶元素就入栈(保证栈单调递增),否则得到结果(返回两个下标之差,并继续和栈顶元素(不为空的话)比较)
496、下一个更大元素I:数组1是数组2的子集,求数组1的元素值在数组2中的下一个更大的值。利用unordered_map来做映射,方便找出nums2中与nums1相等的值且返回其下标。
503、下一个更大元素II:循环数组,所以循环一遍之后,再循环一遍与单调栈(单调递增)中剩余的元素进行比较,这次只取当前元素大于栈顶元素的结果。
单调栈的题目的核心都是计算当前结果需要跟它左右两边(任意一边或同时需要)第一次小于/大于它的元素进行比较。
739、每日温度:单调栈里只存下标,遍历数组元素与栈顶元素进行比较,若小于等于栈顶元素就入栈(保证栈单调递增),否则得到结果(返回两个下标之差,并继续和栈顶元素(不为空的话)比较)
496、下一个更大元素I:数组1是数组2的子集,求数组1的元素值在数组2中的下一个更大的值。利用unordered_map来做映射,方便找出nums2中与nums1相等的值且返回其下标。
503、下一个更大元素II:循环数组,所以循环一遍之后,再循环一遍与单调栈(单调递增)中剩余的元素进行比较,这次只取当前元素大于栈顶元素的结果。
单调栈的题目的核心都是计算当前结果需要跟它左右两边(任意一边或同时需要)第一次小于/大于它的元素进行比较。
全部评论
相关推荐