hard
Rudy Chan
这个作者很懒,什么都没留下…
展开
-
leetcode42. 接雨水(dp)
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 求出每个柱子左边最高和右边最高,然后和柱子高度...原创 2019-07-04 21:13:14 · 138 阅读 · 0 评论 -
leetcode84. 柱状图中最大的矩形(dp)
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。 图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。 示例: 输入: [2,1,5,6,2,3] 输出: 10 dp不是最优解,stack是最优解 class ...原创 2019-07-16 23:05:32 · 470 阅读 · 0 评论 -
leetcode32. 最长有效括号(stack)
给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: “(()” 输出: 2 解释: 最长有效括号子串为 “()” 示例 2: 输入: “)()())” 输出: 4 解释: 最长有效括号子串为 “()()” 与找到每个可能的子字符串后再判断它的有效性不同,我们可以用栈在遍历给定字符串的过程中去判断到目前为止扫描的子字符串的有效性,同时能的都最长有效...转载 2019-07-23 15:07:52 · 125 阅读 · 0 评论 -
leetcode239. 滑动窗口最大值(双向队列)
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 [1 3 -1] -3 ...原创 2019-08-12 08:08:38 · 176 阅读 · 0 评论 -
leetcode52. N皇后 II(位运算最简单)
上图为 8 皇后问题的一种解法。 给定一个整数 n,返回 n 皇后不同的解决方案的数量。 示例: 输入: 4 输出: 2 解释: 4 皇后问题存在如下两个不同的解法。 [ [".Q…", // 解法 1 “…Q”, “Q…”, “…Q.”], ["…Q.", // 解法 2 “Q…”, “…Q”, “.Q…”] ] class Solution { int count=0; i...原创 2019-08-27 04:26:00 · 386 阅读 · 0 评论 -
leetcode 股票系列 121, 122, 123, 309, 118,714(dp)
leetcode121 ez: 题目:一次交易(找出最大差值) 做法:最小值记录到目前为止的最小值,res记录到目前为止最大利润。遍历一遍找到最大值。 class Solution { public int maxProfit(int[] prices) { int min=Integer.MAX_VALUE; int res=0; fo...原创 2019-08-29 06:33:41 · 205 阅读 · 0 评论 -
leetcode72. 编辑距离(dp)
给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入: word1 = “horse”, word2 = “ros” 输出: 3 解释: horse -> rorse (将 ‘h’ 替换为 ‘r’) rorse -> rose (删除 ‘...原创 2019-08-31 06:31:29 · 83 阅读 · 0 评论