Caeoon

Results 27 comments of Caeoon

感觉我有点儿笨比,f(x)的函数变一下就写不出来了

附上一个只有加减的C++版本。使用了全局变量`index`和`while(index < s.size())`来控制每次递归的输入,即一定是括号后的下一个元素。需要注意的是,由于代码中进入`while`循环后`index`直接自增,所以入栈条件就变成了`index >= s.size()`。 我还看到有题解是将字符串`s`转换成了双端队列或者list来做,每次进入循环都将第一个元素pop,但是我个人感觉有点儿麻烦。 ```cpp class Solution { public: int calculate(string s) { // 计算器 // 带括号和 + - this->s = s; return calcu(); } string s; int...

感兴趣的可以做一下`1049. 最后一块石头的重量 II`,也是一样的思路。但是我觉得如何能看出来这是一个01背包问题好难啊😣

感觉课程里的文章好像比我之前看过的简略了很多,是修改了吗?

```c++ class Solution { public: int minFallingPathSum(vector& matrix) { // dp int m = matrix.size(); // 行 int n = matrix[0].size(); // 列 // dp[i][j]:从maxtrix[0][..]开始下落,落到maxtrix[i][j]的最小和为dp[i][j] // 因此dp数组的大小也是m x n,里面存储的是到达maxtrix[i][j]的下降路径最小和 vector...

删除BST结点的第三种情况: 情况 3:A 有两个子节点,麻烦了,为了不破坏 BST 的性质,A 必须找到左子树中最大的那个节点,或者右子树中最小的那个节点来接替自己。 这是否也不唯一?也可以将被删除结点的左子树整个接到右子树的最左的叶子节点上即可。

本题的滑动窗口解法,重点在于maxSum的初始化 ```cpp class Solution { public: int maxSubArray(vector& nums) { // 滑动窗口(快慢指针 int left = 0, right = 0; int sum = 0, maxSum = INT32_MIN; // 重点:preMaxSum一定要设置为最小负数,这样遇到全负数组的时候才能不出错 while(right <...

东哥,不知道我这样理解对不对呢 ## 完全背包问题和01背包的差别: **完全背包:第i件可重复,所以是i的状态转移** `dp[i][j] = dp[i-1][j] + dp[i][j-coins[i-1]];` **01背包:第i件物品不能重复,所以是上一个i-1的状态转移** `dp[i][j] = dp[i-1][j] + dp[i-1][j-coins[i-1]];`

厉害呀,跟着刷完了双指针的数组题目,感觉越来越得心应手