求第一个入环的点 发表于 2024-11-27 分类于 链表 本文字数: 1.6k 阅读时长 ≈ 3 分钟 基本思路 开始时快指针走两步,慢指针走一步 如果相遇,则找到第一个相遇的点 快指针回到头结点,慢指针原地不动 快慢指针各走一步,这时再相遇的点就是入环节点 链表类型例题LCR 022. 环形链表 II 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 ... 阅读全文 »
归并分治 发表于 2024-11-24 分类于 递归 本文字数: 1.7k 阅读时长 ≈ 3 分钟 思路简要来说,归并分治的思路就是,在归并排序的基础上,统计答案。 具体而言,可以从以下步骤进行考虑: 答案是否可以从左区间、右区间和左跨右区间得到。 排序是否对寻找答案有利。 例题分析翻转对 给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。 你需要返回给定数组中的... 阅读全文 »
向上取整的方法 发表于 2024-11-24 分类于 数学 本文字数: 89 阅读时长 ≈ 1 分钟 对一个数进行向上取整,对于cpp来说,可以使用库函数ceil进行取整。对于非负数来说,可以使用下面的方法进行方便的取整。公式如下: (a + b - 1) / b 证明思路如下图所示: 阅读全文 »
嵌套类递归模版 发表于 2024-11-06 分类于 递归 本文字数: 1.1k 阅读时长 ≈ 2 分钟 基本步骤 定义全局变量 where 递归函数f(i) 从i位置出发,遇到字符串终止或者嵌套条件终止就返回 返回值是f(i) 负责的这一段结果 f(i)在返回前更新where,目的是让上级函数通过where知道解析到了什么位置,进而继续 例题分析394. 字符串解码 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_strin... 阅读全文 »
求最小公约数 发表于 2024-10-30 更新于 2024-12-20 分类于 数学 本文字数: 188 阅读时长 ≈ 1 分钟 模版cpp版本 123int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b);} python版本 12def gcd(a: int, b: int) -> int: return a if b == 0 else gcd(b, a % b); 补充求最小公倍数 123in... 阅读全文 »