leetcode技巧(根据题目描述匹配解法)

1. 数组和字符串

  1. 排序序列中寻找元素:使用二分搜索或其变种。
    • 例题:在排序数组中查找元素的第一个和最后一个位置 LeetCode 34
    • 例题:寻找旋转排序数组中的最小值 LeetCode 153
  2. 寻找重复元素:使用快慢指针(Floyd 判圈算法)或位运算。
  3. 统计元素出现次数:使用哈希表。
  4. 字符串模式匹配:使用KMP算法或Rabin-Karp算法。

2. 动态规划

  1. 最优子结构问题:使用动态规划。
  2. 背包问题:使用0/1背包或完全背包的DP解法。

3. 图和树

  1. 路径查找问题:使用DFS或BFS。
  2. 最短路径问题:使用Dijkstra或Floyd-Warshall算法。
  3. 连通性问题:使用并查集。

4. 贪心算法

  1. 最小/最大化问题:使用贪心选择。

5. 栈和队列

  1. 最近相关性问题:使用栈。
  2. 滑动窗口问题:使用双端队列。

6. 回溯算法

  1. 组合问题:使用回溯。
  2. 排列问题:使用回溯。

7. 数学问题

  1. 数论问题:使用素数筛选或欧几里得算法。
  2. 几何问题:使用计算几何中的向量运算。

8. 位操作

  1. 快速计算问题:使用位运算。

9. 其它技巧

  1. 滑动窗口:用于子数组或子串问题。
  2. 前缀和与差分数组:用于区间和查询和动态更新。
  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值