程序猿Eason
这个作者很懒,什么都没留下…
展开
-
python/c++ Leetcode题解——292. Nim 游戏
让我们考虑一些小例子。显而易见的是,如果石头堆中只有一块、两块、或是三块石头,那么在你的回合,你就可以把全部石子拿走,从而在游戏中取胜;如果堆中恰好有四块石头,你就会失败。因为在这种情况下不管你取走多少石头,总会为你的对手留下几块,他可以将剩余的石头全部取完,从而他可以在游戏中打败你。因此,要想获胜,在你的回合中,必须避免石头堆中的石子数为 4 的情况。我们继续推理,假设当前堆里只剩下五块、六块、或是七块石头,你可以控制自己拿取的石头数,总是恰好给你的对手留下四块石头,使他输掉这场比赛。原创 2024-02-04 14:20:46 · 290 阅读 · 1 评论 -
我的Leetcode主页
欢迎访问,里面有很多题解!原创 2024-01-17 19:53:57 · 145 阅读 · 1 评论 -
python/c++ Leetcode题解——118. 杨辉三角
杨辉三角,是二项式系数在三角形中的一种几何排列。它是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。杨辉三角具有以下性质:1.每行数字左右对称,由 1 开始逐渐变大再变小,并最终回到 1。2.第 n 行(从 0 开始编号)的数字有 n+1 项,前 n 行共有个数。3.第 n 行的第 m 个数(从 0 开始编号)可表示为可以被表示为组合数,记作或,即为从 n 个不同元素中取 \m 个元素的组合数。原创 2024-01-17 19:51:22 · 320 阅读 · 2 评论 -
python/c++ Leetcode题解——2744. 最大字符串配对数目
我们可以直接使用二重循环,枚举给定的数组 words 中的 words[i] 和 words[j] 是否可以匹配。由于题目规定了数组 words 中包含的字符串互不相同,因此在枚举时,只要保证 i原创 2024-01-17 19:40:50 · 280 阅读 · 1 评论 -
python/c++ Leetcode题解——20. 有效的括号
如果不是相同的类型,或者栈中并没有左括号,那么字符串 s 无效,返回 false。栈中的字符数量为 O(n),而哈希表使用的空间为 O(∣Σ∣),相加即可得到总空间复杂度。我们遍历给定的字符串 s。当我们遇到一个左括号时,我们会期望在后续的遍历中,有一个相同类型的右括号将其闭合。注意到有效字符串的长度一定为偶数,因此如果字符串的长度为奇数,我们可以直接返回 false,省去后续的遍历判断过程。在遍历结束后,如果栈中没有左括号,说明我们将字符串 s 中的所有左括号闭合,返回 true,否则返回 false。原创 2024-01-16 18:43:58 · 93 阅读 · 0 评论 -
python/c++ Leetcode题解——746. 使用最小花费爬楼梯
假设数组 cost 的长度为 n,则 n 个阶梯分别对应下标 0 到 n−1,楼层顶部对应下标 n,问题等价于计算达到下标 n 的最小花费。可以通过动态规划求解。创建长度为 n+1 的数组 dp,其中 dp[i] 表示达到下标 i 的最小花费。由于可以选择下标 0 或 1 作为初始阶梯,因此有 dp[0] = dp[1] = 0.当 2 ≤ i ≤。原创 2023-12-17 12:10:02 · 228 阅读 · 0 评论 -
python/c++ Leetcode题解——1.两数之和
最容易想到的方法是枚举数组中的每一个数 x,寻找数组中是否存在 target - x。当我们使用遍历整个数组的方式寻找 target - x 时,需要注意到每一个位于 x 之前的元素都已经和 x 匹配过,因此不需要再进行匹配。而每一个元素不能被使用两次,所以我们只需要在 x 后面的元素中寻找 target - x。原创 2023-12-17 11:38:06 · 127 阅读 · 0 评论