首次提交

This commit is contained in:
2026-06-16 10:23:51 +08:00
commit aaeb52173b
740 changed files with 173337 additions and 0 deletions
@@ -0,0 +1,67 @@
https://leetcode.cn/problems/maximum-subarray/description/
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
示例 1
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。
示例 2
输入:nums = [1]
输出:1
示例 3
输入:nums = [5,4,-1,7,8]
输出:23
提示:
1 <= nums.length <= 105
-104 <= nums[i] <= 104
进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的 分治法 求解。
双指针遍历 n-1 + n-2 + ... + 1 = n*(n-1)/2
如果指针倒过来,结构对称算法仍然不变
穷举状态
定义 n[i] 为第i个元素的值
定义f[i]为offset i所在位置前缀和,两个前缀和相减就是之间的和,仍要双指针遍历
定义f[i]为 offset i 为结尾的 最大子数组和
那么 f[i] = f[i-1] d[i] <= 0
= f[i - 1] + d[i] d[i] > 0
且初始时
f[0] = 0 d[i] <= 0
f[0] = d[0] d[0] > 0
https://leetcode.cn/problems/substring-with-largest-variance/description/?envType=daily-question&envId=2025-03-16
进阶 最大波动子串
字符串的 波动 定义为子字符串中出现次数 最多 的字符次数与出现次数 最少 的字符次数之差。
给你一个字符串 s ,它只包含小写英文字母。请你返回 s 里所有 子字符串的 最大波动 值。
子字符串 是一个字符串的一段连续字符序列。
示例 1
输入:s = "aababbb"
输出:3
解释:
所有可能的波动值和它们对应的子字符串如以下所示:
- 波动值为 0 的子字符串:"a" "aa" "ab" "abab" "aababb" "ba" "b" "bb" 和 "bbb" 。
- 波动值为 1 的子字符串:"aab" "aba" "abb" "aabab" "ababb" "aababbb" 和 "bab" 。
- 波动值为 2 的子字符串:"aaba" "ababbb" "abbb" 和 "babb" 。
- 波动值为 3 的子字符串 "babbb" 。
所以,最大可能波动值为 3 。
示例 2
输入:s = "abcde"
输出:0
解释:
s 中没有字母出现超过 1 次,所以 s 中每个子字符串的波动值都是 0 。
提示:
1 <= s.length <= 104
s 只包含小写英文字母。
穷举状态
第一层双指针遍历出每一个子字符串,第二层求出波动 n(n-1)/2 * o(求波动)
反过来求波动
遍历每一种字母组合 26 * 26
每一种字母组合变为 每一个小部分就变成了最大子数组和
https://leetcode.cn/problems/minimum-number-of-swaps-to-make-the-string-balanced/solutions/922748/shi-zi-fu-chuan-ping-heng-de-zui-xiao-ji-f7ye/?envType=daily-question&envId=2025-03-17