最长回文子串(Longest Palindromic Substring) 最长回文子串题目描述https://leetcode.cn/problems/longest-palindromic-substring/ 给你一个字符串 s,找到 s 中最长的回文子串。 解题思路核心观察回文串的中心可以是单个字符(奇数长度,如 “aba”)或两个相邻字符(偶数长度,如 “bb”)。从中心向两端扩展,直到不再是回文串。 算法步骤 对每个可能的中心点进行扩展 奇数中心:以 s[i] 2026-03-26 algorithm #Python #题解 #LeetCode #中心扩展
无重复字符的最长子串(Longest Substring Without Repeating Characters) 无重复字符的最长子串题目描述https://leetcode.cn/problems/longest-substring-without-repeating-characters/ 给定一个字符串 s,请你找出其中不含有重复字符的最长子串的长度。 解题思路核心观察使用滑动窗口维护一个不包含重复字符的子串。窗口左边界为 l,右边界为 r(当前遍历到的字符)。 算法步骤 使用集合 a 存储当前窗口中的 2026-03-26 algorithm #Python #滑动窗口 #题解
两数之和(Two Sum) 两数之和题目描述https://leetcode.cn/problems/two-sum/ 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 解题思路核心观察对于每个元素 nums[i],我们需要查找是否存在另一 2026-03-26 algorithm #Python #哈希表 #题解
未命名 交互题:猜数字import sys l, r, ans = 1, 7, 0 for i in range(3): mid = (l + r) // 2 print(f"? {mid}") sys.stdout.flush() a = input() if a == '<': l 2026-03-21 2025_SDU_Star_Remake
奇偶排序(Parity Sort) 奇偶排序题目描述给定长度为 n 的数组 a,有两种操作: 交换两个奇数位置上的元素 交换两个偶数位置上的元素 判断能否通过任意次操作将数组按非递减顺序排序。 解题思路核心观察奇数只能和奇数交换,偶数只能和偶数交换。这意味着: 排序后,每个位置的奇偶性必须与原数组该位置的奇偶性相同 我们只需要检查排序后数组的奇偶性是否与原数组一致 算法步骤 提取每个位置的奇偶性:arr[i] % 2 对原数 2026-03-18 algorithm #Python #题解 #贪心
12 三八妇女节祝福 题目描述根据输入的姓名和性别,筛选出所有女士(Ms),按输入顺序输出祝福。 解题思路直接遍历输入,筛选性别为 “Ms” 的姓名输出即可。 代码实现n = int(input()) print("Congratulations on 38 happy Women's Day To:") for _ in range(n): name, gender = map( 2026-03-19 题解 #算法 #简单模拟
05_Disjoint Set Union 并查集 并查集什么是并查集?并查集(Disjoint Set Union,DSU)数据结构,也称为并查集或联合-查找数据结构,允许你向图中添加边,并测试图中两个顶点是否相连。 由于实现非常简单,你可能更倾向于使用它来代替 DFS 计算连通分量。 实现class DisjointSets: def __init__(self, size: int) -> None: self 2026-03-21 02_Silver #DSU #并查集 #数据结构 #图
01_Prefix Sums 前缀和 Prefix Sums 前缀和什么是前缀和?前缀和(Prefix Sum)是一种重要的预处理技术,用于快速计算数组任意区间内的元素和。 对于数组 a[1], a[2], ..., a[n],定义前缀和数组 p: p[i] = a[1] + a[2] + ... + a[i]其中 p[0] = 0。 为什么需要前缀和?在没有前缀和的情况下,计算数组区间 [l, r] 的和需要 O(r-l+1) 的时 2026-03-13 02_Silver #前缀和 #滑动窗口 #哈希表 #同余
05_Priority Queues 优先队列 Priority Queues 优先队列简介优先队列(Priority Queue 或 Heap)支持以下操作: 插入元素 删除最高优先级元素 获取最高优先级元素 以上操作的时间复杂度均为 O(log N)。 优先队列比集合更简单更快,应尽可能使用优先队列。 Python 实现注意:Python(与 C++ 不同)中删除和获取的是最小元素。 heapq 不是封装好的类,而是直接操作传入的列表, 2026-03-18 02_Silver #优先队列 #堆 #Priority Queue #Heap
04_Longest Increasing Subsequence 最长递增子序列 最长递增子序列Authors: Michael Cao, Benjamin Qi, Andi Qu, Andrew WangContributors: Dong Liu, Siyong Huang, Aryansh Shrivastava, Kevin Sheng, Katja Frantzen 先决条件 Gold - Introduction to DP (动态规划简介) 教程令 $A$ 2026-03-21 02_动态规划 #DP #动态规划 #算法 #LIS