首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
力扣笔记
yyh888
创建于2024-09-01
订阅专栏
力扣刷题笔记
暂无订阅
共63篇文章
创建于2024-09-01
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
为什么 0 到 (2^n) - 1 的异或结果为 0?
以 0~7(即 n=3)为例: 二进制形式为:000, 001, 010, 011, 100, 101, 110, 111。 每一位(如最低位、次低位、最高位)在所有数中出现的次数均为 偶数次 (4次
leetcode 力扣 560 和为K的子数组
前缀和 思路跟 路径总和3 是一样的 算法思路 使用前缀和currSum - k的数量间接反映和为k的连续子数组数量。 使用一个变量currSum = 0计算当前和,即从0 + nums[0] + .
leetcode 力扣 538 把二叉搜索树转换为累加树
反转中序遍历 算法思路 二叉搜索树的特点是左小右大,而题目的要求是,将当前结点改为,树中大于等于该结点的所有结点的和。 由二叉搜索树的性质不难看出,大于等于当前结点的,不就是它右子树所有结点的和,加上
leetcode 力扣 494 目标和
动态规划,和 416 分割等和子集 的写法二是一样的。区别在于背包的定义。 设数组nums的和为sum,为了得到target,取其中负数部分的和为neg(neg是正的,把负号提出来),那么非负整数部分
leetcode 力扣 438 找到字符串中所有字母异位词
滑动数组 如何在面试时快速想出思路? 最重要的:Arrays.equals(sCount, pCount) 使用两个数组,一个窗口数组sCount,保存滑动时窗口里的字母。另一个是比较数组pCount
leetcode 力扣 437 路径总和3
找前缀和,很抽象的一种解法。 如何在面试时快速想出来? 看看有没有前缀currSum - targetSum? 保存当前currSum为前缀。 前缀数量减一,防止影响右子树。 currSum表示(图中
leetcode 力扣 416 分割等和子集
动态规划写法一 算法思路 能够分割成两个等和子集,数组的总和sum必为偶数。 我们需要判断的是,和为sum / 2的子集是否存在,而不是两个子集都要找出来。 dp[i][j]的含义: dp数组的行代表
leetcode 力扣 406 根据身高重建队列
思维题 其实答案隐藏在题目里: 每个people[i] = [hi, ki]表示第i个人的身高为hi,前面正好有ki个身高大于或等于hi的人。 前面正好有ki个身高大于或等于hi的人:说明应该将身高从
leetcode 力扣 394 字符串解码
一个栈 算法思路 把s分成一层一层,[...[为一层,把s旋转90度,看起来就像栈一样,如下图。 遇到[,就把当前层的数字和字符串压入栈。 当前层的数字表示下一层要重复多少次,当前层的字符串作为pre
leetcode 力扣 347 前K个高频元素
如果用堆排序的话,这题和 数组中的第k个最大元素 是一模一样的。无非是把结点元素换成键值对而已。 需要注意的是,要取出所有k个元素,所以要加等于号,i >= list.size() - k,与215题
leetcode 力扣 337 打家劫舍3
后序遍历 状态定义 每个结点都保存一个dp数组,记录选择偷和不偷,以及底下孩子结点积累的赃款。 dp[0]表示不偷当前结点,dp[1]表示偷当前结点。 状态转移 不偷当前结点。当前最大赃款等于左孩子偷
比力扣所有题解都易懂 leetcode 力扣 322 零钱兑换
完全背包问题 从1到amount,每个数把每个硬币减个遍,取他们中的最小值。 一开始我犯了个低级错误,把硬币小到大排序,然后从后往前遍历,相减大于等于零就停下。这样是错的,amount小还好,如果am
leetcode 力扣 309 买卖股票的最佳时机含冷冻期
动态规划 题目要求卖出股票的下一天,不能再买入股票。针对这个要求,我们定义两个状态,表示当天的股票状态: 状态0:非持有股票(但不是今天卖出导致非持有,可以是上一天卖出,上上天卖出,或者一直没买过)
leetcode 力扣 300 最长递增子序列
动态规划 算法思路 dp数组的含义,dp[i]表示,以nums[i]结尾的最长递增序列,的长度。 使用两层for循环,第一层遍历nums中的每个数nums[i],第二层遍历nums[i]前面的每个数n
leetcode 力扣 287 寻找重复数
假期开组会,没时间看二分法了,只能用双指针模拟链表 寻找链表的入口.................
leetcode 力扣 279 完全平方数
动态规划 计算从1开始到n的每个数,他们各自最少可以由几个完全平方数组成..............
leetcode 力扣 39 组合总和
回溯 使用减法,确定下一次dfs要找的数。比如下面的例子,[2, 3, 6, 7],7 - 2 = 5,5就是下一次dfs要找的数,如果能把5减到0,那么就找到一组答案[2, 2, 3]。 第一个问题
leetcode 力扣 34 在排序数组中查找元素的第一个和最后一个位置
魔改二分法 首先明确我们的查找目标:直接找第一个target和最后一个target 直接看下面的注释即可
leetcode 力扣 33 搜索旋转排序数组
二分查找只能用在已排序的数组中,所以这道题需要找到旋转后有序的部分。 比如,在123456中,对3进行旋转,得到345612,mid之前是有序的,mid之后是无序的,在34中查找target (rig
leetcode 力扣 31 下一个排列
我们可以这样来看,不要把它当成字典序,把它当成一个数,比如123456,我们把它分开两半,123和456,离四百五十六最近最大的数就是465。 所以关键是怎么找到最近最大的数 最近,就是从后往前找,找
下一页