directory
0.0.0-20240920062246-d0657495930a
Repository: https://github.com/yigmmk/leetcode.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
* @lc app=leetcode.cn id=1124 lang=golang
*
* [1124] 表现良好的最长时间段
*
* https://leetcode.cn/problems/longest-well-performing-interval/description/
*
* algorithms
* Medium (34.80%)
* Likes: 442
* Dislikes: 0
* Total Accepted: 38.6K
* Total Submissions: 99.5K
* Testcase Example: '[9,9,6,0,6,6,9]'
*
* 给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。
*
* 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。
*
* 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大于「不劳累的天数」。
*
* 请你返回「表现良好时间段」的最大长度。
*
*
*
* 示例 1:
*
*
* 输入:hours = [9,9,6,0,6,6,9]
* 输出:3
* 解释:最长的表现良好时间段是 [9,9,6]。
*
* 示例 2:
*
*
* 输入:hours = [6,6,6]
* 输出:0
*
*
*
*
* 提示:
*
*
* 1 <= hours.length <= 10^4
* 0 <= hours[i] <= 16
*
*
*/.
* @lc app=leetcode.cn id=1475 lang=golang
*
* [1475] 商品折扣后的最终价格
*
* https://leetcode.cn/problems/final-prices-with-a-special-discount-in-a-shop/description/
*
* algorithms
* Easy (73.31%)
* Likes: 207
* Dislikes: 0
* Total Accepted: 70.4K
* Total Submissions: 95.9K
* Testcase Example: '[8,4,6,2,3]'
*
* 给你一个数组 prices ,其中 prices[i] 是商店里第 i 件商品的价格。
*
* 商店里正在进行促销活动,如果你要买第 i 件商品,那么你可以得到与 prices[j] 相等的折扣,其中 j 是满足 j > i 且 prices[j]
* <= prices[i] 的 最小下标 ,如果没有满足条件的 j ,你将没有任何折扣。
*
* 请你返回一个数组,数组中第 i 个元素是折扣后你购买商品 i 最终需要支付的价格。
*
*
*
* 示例 1:
*
* 输入:prices = [8,4,6,2,3]
* 输出:[4,2,4,2,3]
* 解释:
* 商品 0 的价格为 price[0]=8 ,你将得到 prices[1]=4 的折扣,所以最终价格为 8 - 4 = 4 。
* 商品 1 的价格为 price[1]=4 ,你将得到 prices[3]=2 的折扣,所以最终价格为 4 - 2 = 2 。
* 商品 2 的价格为 price[2]=6 ,你将得到 prices[3]=2 的折扣,所以最终价格为 6 - 2 = 4 。
* 商品 3 和 4 都没有折扣。
*
*
* 示例 2:
*
* 输入:prices = [1,2,3,4,5]
* 输出:[1,2,3,4,5]
* 解释:在这个例子中,所有商品都没有折扣。
*
*
* 示例 3:
*
* 输入:prices = [10,1,1,6]
* 输出:[9,0,1,6]
*
*
*
*
* 提示:
*
*
* 1 <= prices.length <= 500
* 1 <= prices[i] <= 10^3
*
*
*/.
* @lc app=leetcode.cn id=2289 lang=golang
*
* [2289] 使数组按非递减顺序排列
*
* https://leetcode.cn/problems/steps-to-make-array-non-decreasing/description/
*
* algorithms
* Medium (22.00%)
* Likes: 132
* Dislikes: 0
* Total Accepted: 6.3K
* Total Submissions: 28.9K
* Testcase Example: '[5,3,4,4,7,3,6,11,8,5,11]'
*
* 给你一个下标从 0 开始的整数数组 nums 。在一步操作中,移除所有满足 nums[i - 1] > nums[i] 的 nums[i] ,其中 0
* < i < nums.length 。
*
* 重复执行步骤,直到 nums 变为 非递减 数组,返回所需执行的操作数。
*
*
*
* 示例 1:
*
*
* 输入:nums = [5,3,4,4,7,3,6,11,8,5,11]
* 输出:3
* 解释:执行下述几个步骤:
* - 步骤 1 :[5,3,4,4,7,3,6,11,8,5,11] 变为 [5,4,4,7,6,11,11]
* - 步骤 2 :[5,4,4,7,6,11,11] 变为 [5,4,7,11,11]
* - 步骤 3 :[5,4,7,11,11] 变为 [5,7,11,11]
* [5,7,11,11] 是一个非递减数组,因此,返回 3 。
*
*
* 示例 2:
*
*
* 输入:nums = [4,5,7,7,13]
* 输出:0
* 解释:nums 已经是一个非递减数组,因此,返回 0 。
*
*
*
*
* 提示:
*
*
* 1 <= nums.length <= 10^5
* 1 <= nums[i] <= 10^9
*
*
*/.
No description provided by the author
* @lc app=leetcode.cn id=456 lang=golang
*
* [456] 132 模式
*
* https://leetcode.cn/problems/132-pattern/description/
*
* algorithms
* Medium (36.44%)
* Likes: 786
* Dislikes: 0
* Total Accepted: 78K
* Total Submissions: 213.9K
* Testcase Example: '[1,2,3,4]'
*
* 给你一个整数数组 nums ,数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k]
* 组成,并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。
*
* 如果 nums 中存在 132 模式的子序列 ,返回 true ;否则,返回 false 。
*
*
*
* 示例 1:
*
*
* 输入:nums = [1,2,3,4]
* 输出:false
* 解释:序列中不存在 132 模式的子序列。
*
*
* 示例 2:
*
*
* 输入:nums = [3,1,4,2]
* 输出:true
* 解释:序列中有 1 个 132 模式的子序列: [1, 4, 2] 。
*
*
* 示例 3:
*
*
* 输入:nums = [-1,3,2,0]
* 输出:true
* 解释:序列中有 3 个 132 模式的的子序列:[-1, 3, 2]、[-1, 3, 0] 和 [-1, 2, 0] 。
*
*
*
*
* 提示:
*
*
* n == nums.length
* 1
* -10^9
*
*
*/.
* @lc app=leetcode.cn id=496 lang=golang
*
* [496] 下一个更大元素 I
*
* https://leetcode.cn/problems/next-greater-element-i/description/
*
* algorithms
* Easy (71.78%)
* Likes: 1094
* Dislikes: 0
* Total Accepted: 284.1K
* Total Submissions: 395.7K
* Testcase Example: '[4,1,2]\n[1,3,4,2]'
*
* nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。
*
* 给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。
*
* 对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2[j] 的下标 j ,并且在 nums2 确定
* nums2[j] 的 下一个更大元素 。如果不存在下一个更大元素,那么本次查询的答案是 -1 。
*
* 返回一个长度为 nums1.length 的数组 ans 作为答案,满足 ans[i] 是如上所述的 下一个更大元素 。
*
*
*
* 示例 1:
*
*
* 输入:nums1 = [4,1,2], nums2 = [1,3,4,2].
* @lc app=leetcode.cn id=503 lang=golang
*
* [503] 下一个更大元素 II
*
* https://leetcode.cn/problems/next-greater-element-ii/description/
*
* algorithms
* Medium (67.02%)
* Likes: 872
* Dislikes: 0
* Total Accepted: 215.7K
* Total Submissions: 321.8K
* Testcase Example: '[1,2,1]'
*
* 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的
* 下一个更大元素 。
*
* 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1
* 。
*
*
*
* 示例 1:
*
*
* 输入: nums = [1,2,1]
* 输出: [2,-1,2]
* 解释: 第一个 1 的下一个更大的数是 2;
* 数字 2 找不到下一个更大的数;
* 第二个 1 的下一个最大的数需要循环搜索,结果也是 2。
*
*
* 示例 2:
*
*
* 输入: nums = [1,2,3,4,3]
* 输出: [2,3,4,-1,4]
*
*
*
*
* 提示:
*
*
* 1 <= nums.length <= 10^4
* -10^9 <= nums[i] <= 10^9
*
*
*/.
* @lc app=leetcode.cn id=739 lang=golang
*
* [739] 每日温度
*
* https://leetcode.cn/problems/daily-temperatures/description/
*
* algorithms
* Medium (68.73%)
* Likes: 1626
* Dislikes: 0
* Total Accepted: 471.3K
* Total Submissions: 685.5K
* Testcase Example: '[73,74,75,71,69,72,76,73]'
*
* 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i
* 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
*
*
*
* 示例 1:
*
*
* 输入: temperatures = [73,74,75,71,69,72,76,73]
* 输出: [1,1,4,2,1,1,0,0]
*
*
* 示例 2:
*
*
* 输入: temperatures = [30,40,50,60]
* 输出: [1,1,1,0]
*
*
* 示例 3:
*
*
* 输入: temperatures = [30,60,90]
* 输出: [1,1,0]
*
*
*
* 提示:
*
*
* 1 <= temperatures.length <= 10^5
* 30 <= temperatures[i] <= 100
*
*
*/.
* @lc app=leetcode.cn id=901 lang=golang
*
* [901] 股票价格跨度
*
* https://leetcode.cn/problems/online-stock-span/description/
*
- algorithms
- Medium (62.18%)
- Likes: 391
- Dislikes: 0
- Total Accepted: 74.4K
- Total Submissions: 117.2K
- Testcase Example: '["StockSpanner","next","next","next","next","next","next","next"]\n' +
'[[],[100],[80],[60],[70],[60],[75],[85]]'
*
* 设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。
*
* 当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。
*
*
*
* 例如,如果未来 7 天股票的价格是 [100,80,60,70,60,75,85],那么股票跨度将是 [1,1,1,2,1,4,6] 。
*
*
*
* 实现 StockSpanner 类:
*
*
* StockSpanner() 初始化类对象。
* int next(int price) 给出今天的股价 price ,返回该股票当日价格的 跨度 。
*
*
*
*
* 示例:
*
*
* 输入:
* ["StockSpanner", "next", "next", "next", "next", "next", "next", "next"]
* [[], [100], [80], [60], [70], [60], [75], [85]]
* 输出:
* [null, 1, 1, 1, 2, 1, 4, 6]
*
* 解释:
* StockSpanner stockSpanner = new StockSpanner();
* stockSpanner.next(100); // 返回 1
* stockSpanner.next(80); // 返回 1
* stockSpanner.next(60); // 返回 1
* stockSpanner.next(70); // 返回 2
* stockSpanner.next(60); // 返回 1
* stockSpanner.next(75); // 返回 4 ,因为截至今天的最后 4 个股价 (包括今天的股价 75) 都小于或等于今天的股价。
* stockSpanner.next(85); // 返回 6
*
*
*
* 提示:
*
*
* 1 <= price <= 10^5
* 最多调用 next 方法 10^4 次
*
*
*/.