算法

alg 即 algorithm

基础: 算法入门

LeetCode 1. 两数之和 是一个非常经典的问题,也是算法学习的入门题目。这个问题可以通过暴力枚举、哈希表等多种方法解决,是一个很好的起点。

LeetCode 1. 两数之和 题目详情

给定一个整数数组 nums 和一个整数目标值 target ,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
你可以按任意顺序返回答案。

示例 1:
输入: nums = [2,7,11,15], target = 9
输出: [0,1]
解释: 因为 nums[0] + nums[1] == 9 ,返回 [0, 1]

示例 2:
输入: nums = [3,2,4], target = 6
输出: [1,2]

示例 3:
输入: nums = [3,3], target = 6
输出: [0,1]

提示:

  • 只会存在一个有效答案

进阶: 你可以想出一个时间复杂度小于 的算法吗?


如果不会解决这个问题,可以查看 穷举法#例题 中的解法。

数组和穷举

  • 掌握数组的基本操作(遍历、插入、删除)
  • 学习穷举法解决问题

基础数据结构

排序

进阶: 算法思想与应用

贪心算法

二分查找

前缀和与差分

双指针与滑动窗口

动态规划 (DP)

高级: 复杂算法与优化

分治与递归

图论算法

高级数据结构