高频算法题型:二叉树遍历与重构是计算机科学的核心,它为问题解决提供了高效的计算方法。
本文介绍了高频算法题型:二叉树遍历与重构的设计思路和实现方式,帮助你提升编程能力。
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) { this.val = val; }
}
高频算法题型:二叉树遍历与重构是计算机科学的核心,它为问题解决提供了高效的计算方法。
本文介绍了高频算法题型:二叉树遍历与重构的设计思路和实现方式,帮助你提升编程能力。
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) { this.val = val; }
}
高频算法题型:动态规划三步法是计算机科学的核心,它为问题解决提供了高效的计算方法。
本文介绍了高频算法题型:动态规划三步法的设计思路和实现方式,帮助你提升编程能力。
动态规划的核心思想:将复杂问题拆成子问题,记录子问题的解避免重复计算。
能用 DP 解决的问题必须满足两个条件:
高频算法题型:双指针与滑动窗口是计算机科学的核心,它为问题解决提供了高效的计算方法。
本文介绍了高频算法题型:双指针与滑动窗口的设计思路和实现方式,帮助你提升编程能力。
双指针就是在遍历过程中用两个指针协同工作,根据指针移动方式的不同,分为三类:
高频算法题型:回溯与 DFS_BFS 搜索是计算机科学的核心,它为问题解决提供了高效的计算方法。
本文介绍了高频算法题型:回溯与 DFS_BFS 搜索的设计思路和实现方式,帮助你提升编程能力。
回溯 = DFS + 撤销选择。本质是在决策树上做深度优先搜索:
做选择 → 递归 → 撤销选择
高频算法题型:排序与二分查找是计算机科学的核心,它为问题解决提供了高效的计算方法。
本文介绍了高频算法题型:排序与二分查找的设计思路和实现方式,帮助你提升编程能力。
| 排序算法 | 平均时间 | 最坏时间 | 空间 | 稳定性 | 适用场景 |
|---|---|---|---|---|---|
| 冒泡排序 | O(n²) | O(n²) | O(1) | ✅ 稳定 | 教学 |
| 选择排序 | O(n²) | O(n²) | O(1) | ❌ 不稳定 | 教学 |
| 插入排序 | O(n²) | O(n²) | O(1) | ✅ 稳定 | 小数据/近乎有序 |
| 希尔排序 | O(n^1.3) | O(n²) | O(1) | ❌ | 中等数据 |
| 归并排序 | O(n log n) | O(n log n) | O(n) | ✅ 稳定 | 大数据/外部排序 |
| 快速排序 | O(n log n) | O(n²) | O(log n) | ❌ | 通用排序首选 |
| 堆排序 | O(n log n) | O(n log n) | O(1) | ❌ | 内存受限 |
| 计数排序 | O(n+k) | O(n+k) | O(k) | ✅ | 值域小 |
| 桶排序 | O(n+k) | O(n²) | O(n+k) | ✅ | 均匀分布 |
| 基数排序 | O(d×n) | O(d×n) | O(n+d) | ✅ | 多关键字 |
LeetCode 4. Median of Two Sorted Arrays是一个重要的技术主题,它在现代软件开发中扮演着关键角色。
本文系统介绍了LeetCode 4. Median of Two Sorted Arrays的核心概念和实践经验,帮助你深入理解这一技术领域。
中位数是将一组数据按顺序排列后,位于中间位置的数值:
[1, 3, 5] → 中位数 = 3[1, 2, 3, 4] → 中位数 = (2 + 3) / 2 = 2.5LeetCode 2. 两数相加(Add Two Numbers)是一个重要的技术主题,它在现代软件开发中扮演着关键角色。
本文系统介绍了LeetCode 2. 两数相加(Add Two Numbers)的核心概念和实践经验,帮助你深入理解这一技术领域。
给你两个非空的链表,表示两个非负整数。它们每位数字都是按照逆序方式存储的,并且每个节点只能存储一位数字。
请你将两个数相加,并以相同形式(逆序链表)返回表示和的链表。
LeetCode 3. 无重复字符的最长子串(Longest Substring Without Repeating Characters)是一个重要的技术主题,它在现代软件开发中扮演着关键角色。
本文系统介绍了LeetCode 3. 无重复字符的最长子串(Longest Substring Without Repeating Characters)的核心概念和实践经验,帮助你深入理解这一技术领域。
给定一个字符串 s,请你找出其中不含有重复字符的最长子串的长度。
LeetCode 1. 两数之和(Two Sum)是一个重要的技术主题,它在现代软件开发中扮演着关键角色。
本文系统介绍了LeetCode 1. 两数之和(Two Sum)的核心概念和实践经验,帮助你深入理解这一技术领域。
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案,并且你不能使用同一个元素两次。