leecode
文章平均质量分 64
stutuIT
这个作者很懒,什么都没留下…
展开
-
leecode-123-买卖股票的最佳时机
题目描述思路官方题解给的是使用动态规划的方法求解,这里也只总结一下动态规划的方法。我也只能想到用暴力解法解决了,但是参考意义不大,所以这里也就不记录了。以下思路参考官方题解动态规划因为题目要求最多可以完成两笔交易,因此在任意一天结束之后,我们都将处于下面五种状态之一:未进行过任何操作只进行过一次买操作进行了一次买操作和一次卖操作,即完成了一笔交易进行了第二次买操作完成了全部两笔交易对于状态1 很明显利润为0,这个我们就不进行记录了状态2的最大利润记为 buy1状态3的最大利润原创 2021-01-10 18:15:18 · 183 阅读 · 0 评论 -
leecode-189-旋转数组
题目描述思路这个题要求原地旋转,即交换这些数字的位置。那么只需要找到每个数字旋转后的所在位置(nextIndex)即可数字的当前的位置用curIndex标识数组长度 n旋转距离 k公式:nextIndex = (curIndex+k) % n;那么首先想到的就是对这个数组进行依次迭代,将迭代过程中的数字移动到对应位置那么自然而然就会产生一个问题,目标位置原来的值就被替换掉了。如果我们将目标位置原来的值保存下来,这样就会需要O(n)的额外空间,与题意不符下面举个例子:nums =原创 2021-01-08 17:24:49 · 113 阅读 · 0 评论 -
leecode-滑动窗口最大值
题目描述思路暴力求解首先这个问题只是划定一个数组的范围,叫做窗口,然后输出这个窗口的最大值,直接暴力求解的思路比较简单。即将每次移动后的窗口找出最大值然后输出即可窗口的大小为k数组长度为n那么数组移动次数为n-k那么时间复杂度为O((n-k+1)k),即O(nk)会超出时间限制优先队列优化对于每次窗口的移动,改变的只有一个元素(或者两个,一进一出),可以利用这个特点进行优化因为每次找的都是窗口的最大值,那么优先队列就是最合适的数据结构了优先队列中存入二元组(元素值,元素索引)原创 2021-01-06 15:31:40 · 130 阅读 · 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 · 196 阅读 · 0 评论