leecode
文章平均质量分 64
stutuIT
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leecode-123-买卖股票的最佳时机
题目描述 思路 官方题解给的是使用动态规划的方法求解,这里也只总结一下动态规划的方法。我也只能想到用暴力解法解决了,但是参考意义不大,所以这里也就不记录了。 以下思路参考官方题解 动态规划 因为题目要求最多可以完成两笔交易,因此在任意一天结束之后,我们都将处于下面五种状态之一: 未进行过任何操作 只进行过一次买操作 进行了一次买操作和一次卖操作,即完成了一笔交易 进行了第二次买操作 完成了全部两笔交易 对于状态1 很明显利润为0,这个我们就不进行记录了 状态2的最大利润记为 buy1 状态3的最大利润原创 2021-01-10 18:15:18 · 247 阅读 · 0 评论 -
leecode-189-旋转数组
题目描述 思路 这个题要求原地旋转,即交换这些数字的位置。那么只需要找到每个数字旋转后的所在位置(nextIndex)即可 数字的当前的位置用curIndex标识 数组长度 n 旋转距离 k 公式: nextIndex = (curIndex+k) % n; 那么首先想到的就是对这个数组进行依次迭代,将迭代过程中的数字移动到对应位置 那么自然而然就会产生一个问题,目标位置原来的值就被替换掉了。 如果我们将目标位置原来的值保存下来,这样就会需要O(n)的额外空间,与题意不符 下面举个例子: nums =原创 2021-01-08 17:24:49 · 165 阅读 · 0 评论 -
leecode-滑动窗口最大值
题目描述 思路 暴力求解 首先这个问题只是划定一个数组的范围,叫做窗口,然后输出这个窗口的最大值,直接暴力求解的思路比较简单。 即将每次移动后的窗口找出最大值然后输出即可 窗口的大小为k 数组长度为n 那么数组移动次数为n-k 那么时间复杂度为O((n-k+1)k),即O(nk) 会超出时间限制 优先队列优化 对于每次窗口的移动,改变的只有一个元素(或者两个,一进一出),可以利用这个特点进行优化 因为每次找的都是窗口的最大值,那么优先队列就是最合适的数据结构了 优先队列中存入二元组(元素值,元素索引)原创 2021-01-06 15:31:40 · 198 阅读 · 0 评论 -
leecode-最大矩形
题目描述 思路 暴力解法 遍历所有点,找到以这个点为右下角的最大矩阵面积。 输入数组:char[][] matrix(注意这里是char类型) 辅助数组:left[][] 每个点左侧连续1的数目(包括这个点本身) 目标数组:area[i][j]=//area[i][j] 为以maxtrix[i][j]为矩阵右下角的最大矩阵面积 求得目标数组的方法: (1)首先找到以这个点为右下角的 高为1的 矩阵,也就是left[i][j]的值 (2)向上走一步,选择这两个点left[i][j] 小的作为宽,计算高为2原创 2020-12-26 19:10:59 · 241 阅读 · 0 评论
分享