步子哥
对于稍微复杂一些的问题,LLM不可能一步解决,需要一步步来。
简单来说就是 步子不能大,一步步推理,也就是 步子哥 这个昵称的由来。
AGI专家,20年的软件系统研发和管理经验。
欢迎来我的爱发电主页:https://afdian.com/a/steper
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【LeetCode】265. 粉刷房子 II
例如,costs[0][0] 表示第 0 幢房子粉刷成 0 号颜色的成本;costs[1][2] 表示第 1 幢房子粉刷成 2 号颜色的成本,以此类推。我们需要粉刷一排房子,其中每幢房子可以选择 k 种颜色,同时需要满足相邻的房子颜色不能相同。或者将 房子 0 刷成 2 号颜色,房子 1 刷成 0 号颜色。将房子 0 刷成 0 号颜色,房子 1 刷成 2 号颜色。输入: costs = [[1,5,3],[2,9,4]]输入: costs = [[1,3],[2,4]]返回 粉刷完所有房子的最低成本。原创 2025-01-09 23:00:00 · 1268 阅读 · 0 评论 -
【LeetCode】 716. 最大栈
试着设计解决方案:调用 top 方法的时间复杂度为 O(1) ,调用其他方法的时间复杂度为 O(logn)。// 返回 5,[5, 1] - 栈发生改变,栈顶元素不再是最大元素。// 返回 1,[5] - 此操作后,5 既是栈顶元素,也是最大元素。// [5, 1, 5] - 5 既是栈顶元素,也是最大元素。// [5, 1] - 栈顶元素是 1,最大元素是 5。// 返回 5,[5, 1, 5] - 栈没有改变。// [5] - 5 既是栈顶元素,也是最大元素。// 返回 5,[5] - 栈没有改变。原创 2025-01-06 07:00:00 · 208 阅读 · 0 评论 -
【LeetCode】4. 寻找两个正序数组的中位数
这是一个使用二分思想解决的经典问题,通过将中位数转化为第k小的数的问题,并在每次迭代中排除k/2个元素,最终达到对数级别的时间复杂度。原创 2024-12-11 00:00:00 · 786 阅读 · 0 评论 -
【LeetCode】305. 岛屿数量 II
给你一个数组 positions ,其中 positions[i] = [ri, ci] 是要执行第 i 次操作的位置 (ri, ci)。返回一个整数数组 answer ,其中 answer[i] 是将单元格 (ri, ci) 转换为陆地后,地图中岛屿的数量。输入:m = 3, n = 3, positions = [[0,0],[0,1],[1,2],[2,1]](0 代表「水」,1 代表「陆地」)输入:m = 1, n = 1, positions = [[0,0]]输出:[1,1,2,3]原创 2024-12-12 23:24:09 · 223 阅读 · 0 评论 -
【LeetCode】295. 数据流的中位数
使用双堆结构是解决这个问题的最佳方案,能够完美平衡插入和查询的时间复杂度。原创 2024-12-05 21:52:44 · 794 阅读 · 0 评论 -
【LeetCode】188. 买卖股票的最佳时机 IV
使用动态规划求解,定义三维状态dp[i][j][0/1],通过状态转移方程计算最大利润。时间复杂度O(nk),空间复杂度O(nk)。原创 2024-12-05 22:17:08 · 1227 阅读 · 0 评论 -
【LeetCode】480. 滑动窗口中位数
中位数是有序序列最中间的那个数。如果序列的长度是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。例如:[2,3,4],中位数是 3[2,3],中位数是 (2 + 3) / 2 = 2.5给你一个数组 nums,有一个长度为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次窗口向右移动 1 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并输出由它们组成的数组。示例:给出 nums = [1,3,-1,-3,5,3,6,7],以及 k = 3。原创 2024-12-07 20:06:16 · 1063 阅读 · 0 评论 -
【LeetCode】936. 戳印序列
你想要用小写字母组成一个目标字符串 target。开始的时候,序列由 target.length 个 ‘?’ 记号组成。而你有一个小写字母印章 stamp。在每个回合,你可以将印章放在序列上,并将序列中的每个字母替换为印章上的相应字母。你最多可以进行 10 * target.length 个回合。举个例子,如果初始序列为 “???”,而你的印章 stamp 是 “abc”,那么在第一回合,你可以得到 “abc??”、“?abc?”、“??abc”。(请注意,印章必须完全包含在序列的边界内才能盖下去。原创 2024-12-07 19:04:27 · 1031 阅读 · 0 评论 -
【LeetCode】30. 串联所有单词的子串
给定一个字符串 s 和一个字符串数组 words。words 中所有字符串 长度相同。s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。例如,如果 words = [“ab”,“cd”,“ef”], 那么 “abcdef”, “abefcd”,“cdabef”, “cdefab”,“efabcd”, 和 “efcdab” 都是串联子串。“acdbef” 不是串联子串,因为他不是任何 words 排列的连接。返回所有串联子串在 s 中的开始索引。原创 2024-12-07 20:22:10 · 1084 阅读 · 0 评论 -
【LeetCode】124. 二叉树中的最大路径和
理解路径的定义(可以拐弯)区分全局最大路径和与节点贡献值正确处理负数节点。原创 2024-12-08 10:27:46 · 888 阅读 · 0 评论 -
【LeetCode】315. 计算右侧小于当前元素的个数
归并排序的思想可以完美解决这个问题,通过在归并过程中统计逆序对的数量,我们可以得到每个元素右侧小于它的元素个数。使用树状数组可以将时间复杂度优化到O(nlogk),其中k是值域范围。原创 2024-12-08 10:35:11 · 847 阅读 · 0 评论 -
【LeetCode】60. 排列序列
这是一个基于数学原理的优雅解法,通过计算每个位置的数字,避免了生成所有排列的开销。核心思想是利用阶乘系统来定位每个位置的数字。使用预计算的阶乘数组代替递归使用正向循环代替while循环保持了原有的算法逻辑,但提高了效率。原创 2024-12-08 10:45:38 · 1053 阅读 · 0 评论 -
【LeetCode】493. 翻转对
使用分治法将问题拆分在合并前统计翻转对使用long类型避免溢出时间复杂度O(nlogn),空间复杂度O(n)原创 2024-12-08 10:56:24 · 1142 阅读 · 0 评论 -
【LeetCode】329. 矩阵中的最长递增路径
这是一个典型的DFS+记忆化搜索问题,通过记录每个位置的最长路径长度来避免重复计算。关键点是要考虑四个方向的移动,并确保路径严格递增。原创 2024-12-08 16:44:33 · 828 阅读 · 0 评论 -
【LeetCode】85. 最大矩形
这是一个经典的动态规划结合单调栈的问题,通过将二维问题转化为一维问题来简化求解过程。关键在于理解每一行都可以看作是直方图,而直方图中最大矩形面积可以通过单调栈在O(n)时间内求解。原创 2024-12-08 21:44:41 · 869 阅读 · 0 评论 -
【LeetCode】212. 单词搜索 II
这是一个经典的单词搜索问题,最优解法是结合Trie和DFS的回溯搜索算法。原创 2024-12-10 00:00:00 · 772 阅读 · 0 评论 -
【LeetCode】32. 最长有效括号
时间复杂度:O(n)空间复杂度:O(n)能处理所有测试用例实现简洁高效。原创 2024-12-11 20:00:00 · 1703 阅读 · 0 评论 -
【LeetCode】410. 分割数组的最大值
给定一个非负整数数组 nums 和一个整数 k ,你需要将这个数组分成 k 个非空的连续子数组,使得这 k 个子数组各自和的最大值 最小。返回分割后最小的和的最大值。子数组 是数组中连续的部份。示例 1:输入:nums = [7,2,5,10,8], k = 2输出:18解释:一共有四种方法将 nums 分割为 2 个子数组。其中最好的方式是将其分为 [7,2,5] 和 [10,8]。因为此时这两个子数组各自的和的最大值为18,在所有情况中最小。原创 2024-12-08 16:29:07 · 506 阅读 · 0 评论 -
【LeetCode】25. K 个一组翻转链表
使用dummy节点简化边界情况分组处理每k个节点对每组执行翻转操作维护组间连接处理最后剩余节点。原创 2024-12-12 21:39:39 · 472 阅读 · 0 评论 -
【LeetCode】51. N 皇后
按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[“.Q…”,“…Q”,“Q…”,“…Q.”],[“…Q.”,“Q…”,“…Q”,“.Q…”]]原创 2024-12-12 22:26:54 · 340 阅读 · 0 评论 -
【LeetCode】84. 柱状图中最大的矩形
这是一个使用单调栈解决的经典问题。通过维护一个单调递增栈,我们可以高效地找到每个柱子左右两边第一个比它矮的柱子,从而计算以当前柱子高度为高的最大矩形面积。算法的时间复杂度为 O(n),空间复杂度为 O(n)。原创 2024-12-12 00:00:00 · 600 阅读 · 0 评论
分享