- 博客(5)
- 资源 (3)
- 问答 (3)
- 收藏
- 关注
原创 Leetcode.315 计算右侧小于当前元素的个数【线段树】
给定一个整数数组 nums,按要求返回一个新数组counts。数组 counts 有该性质: counts[i] 的值是nums[i] 右侧小于nums[i] 的元素的数量。示例:输入:nums = [5,2,6,1]输出:[2,1,1,0]解释:5 的右侧有 2 个更小的元素 (2 和 1)2 的右侧仅有 1 个更小的元素 (1)6 的右侧有 1 个更小的元素 (1)1 的右侧有 0 个更小的元素提示:0 <= nums.length <= ...
2021-02-26 20:28:45 223
原创 Leetcode218.天际线问题【扫描线】
解法如图,假设有一条线从左往右扫描数组:1、遇到左端点,则记录当前x坐标下的最大高度2、遇到右端点,则记录当前x坐标下的最大高度很明显,我们可以采用大顶堆来存储坐标为x时,当前建筑的高度h[x].遇到左端点则把高度入堆,当前堆顶元素即为x处最大高度遇到右端点,则把对应建筑的左端点出堆,此时堆顶同样是x处最大高度代码func getSkyline(buildings [][]int) [][]int { heights := make([][]int, 0, ...
2021-02-24 17:25:58 260
原创 Leetcode.204 求质数【埃氏筛】
统计所有小于非负整数n的质数的数量。示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0提示:0 <= n <= 5 *解法质数相关问题有个套路方法叫埃氏筛:如果x是质数,那么大于x的倍数2x,3x...一定不是质数。所以我们可以根据这个思路,搞一个数组,记录每个...
2021-02-22 17:02:11 164
原创 Leetcode.152 乘积最大子数组 【动态规划】
给你一个整数数组 nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。解法1、暴力法:直接二重循环取最大,时间复杂度O(), 空间复杂度O(1)2、动态规划:我们假设dp[i]是以i为结尾的连续子数组的最大乘积,...
2021-02-12 21:37:11 147
原创 Leetcode 91.解码方法【动态规划】
一条包含字母A-Z 的消息通过以下映射进行了 编码 :'A' -> 1'B' -> 2...'Z' -> 26要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"111" 可以将 "1" 中的每个 "1" 映射为 "A" ,从而得到 "AAA" ,或者可以将 "11" 和 "1"(分别为 "K" 和 "A" )映射为 "KA" 。注意,"06" 不能映射为 "F" ,因为 "6" 和 "06" 不同。给你一个只含数字的 .
2021-02-06 18:01:37 171
TA创建的收藏夹 TA关注的收藏夹
TA关注的人