算法手稿
记录刷算法的路程
Tellme3
任务艰巨在于漫长。
展开
-
49、62. 不同路径(动态规划)
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。网格的左上角 (起始点在下图中标记为 “Start” )。从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右。3. 向下 -> 向右 -> 向下。问总共有多少条不同的路径?原创 2023-11-05 21:53:13 · 106 阅读 · 0 评论 -
48、746. 使用最小花费爬楼梯
一旦你支付此费用,即可选择向上爬一个或者两个台阶。- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。- 支付 1 ,向上爬一个台阶,到达楼梯顶部。你将从下标为 1 的台阶开始。你将从下标为 0 的台阶开始。原创 2023-11-05 21:26:45 · 110 阅读 · 0 评论 -
47、70. 爬楼梯(动态规划)
你有多少种不同的方法可以爬到楼顶呢?1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。原创 2023-11-05 21:26:12 · 99 阅读 · 0 评论 -
547. 省份数量(深度优先算法使用递归实现)
有n个城市,其中一些彼此相连,另一些没有相连。如果城市a与城市b直接相连,且城市b与城市c直接相连,那么城市a与城市c间接相连。是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个n x n的矩阵,其中表示第i个城市和第j个城市直接相连,而表示二者不直接相连。返回矩阵中的数量。23。原创 2023-09-17 23:10:00 · 36 阅读 · 0 评论 -
46、给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。(二分法)
【代码】46、给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。(二分法)原创 2023-07-17 18:47:56 · 224 阅读 · 0 评论 -
45、给你一个整数数组 nums ,请计算数组的 中心下标 (总数 - 当前值是左边的2倍)
【代码】45、给你一个整数数组nums ,请计算数组的 中心下标 (总数 - 当前值是左边的2倍)原创 2023-07-17 16:39:15 · 104 阅读 · 0 评论 -
44、剑指 Offer 56 - I. 数组中数字出现的次数(方案一:暴力算法,方案二:优化暴力算法,方案三:异或运算+ &运算分组 + 异或求解)
【代码】44、剑指 Offer 56 - I. 数组中数字出现的次数(方案一:暴力算法,方案二:优化暴力算法,方案三:异或运算+ &运算分组 + 异或求解)原创 2023-07-17 15:04:22 · 64 阅读 · 0 评论 -
43、剑指 Offer 15. 二进制中1的个数(使用& 与运算 + 位移动 )
【代码】43、剑指 Offer 15. 二进制中1的个数(使用& 与运算 + 位移动 )原创 2023-07-13 16:36:49 · 49 阅读 · 0 评论 -
42、剑指 Offer 48. 最长不含重复字符的子字符串(方案1、动态规划(数组+双指针)方案二、滑动窗口(常用于解决子串和子数组问题))
剑指 Offer 48. 最长不含重复字符的子字符串(方案1、动态规划(数组+双指针)方案二、滑动窗口(常用于解决子串和子数组问题))请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。方案二:滑动窗口(常用于解决子串和子数组问题)方案一:动态规划(数组+双指针)原创 2023-07-12 23:53:07 · 65 阅读 · 0 评论 -
41、剑指 Offer 47. 礼物的最大价值(动态规划,两种情况分析)
【代码】41、剑指 Offer 47. 礼物的最大价值(动态规划,两种情况分析)原创 2023-07-11 11:02:10 · 64 阅读 · 0 评论 -
39、剑指 Offer 42. 连续子数组的最大和(动态规划)
【代码】39、剑指 Offer 42. 连续子数组的最大和(动态规划)原创 2023-07-06 17:54:37 · 56 阅读 · 0 评论 -
40、剑指 Offer 63. 股票的最大利润(方法1、暴力求解,方法2、迭代求解)
【代码】40、剑指 Offer 63. 股票的最大利润(方法1、暴力求解,方法2、迭代求解)原创 2023-07-06 17:49:00 · 49 阅读 · 0 评论 -
38、剑指 Offer 10- II. 青蛙跳台阶问题(动态规划使用数组递归)
【代码】38、剑指 Offer 10- II. 青蛙跳台阶问题(动态规划使用数组递归)原创 2023-06-30 15:12:25 · 67 阅读 · 0 评论 -
37、46. 使用最小花费爬楼梯(动态规划就是后面状态由前面的状态决定)
【代码】37、46. 使用最小花费爬楼梯(动态规划就是后面状态由前面的状态决定)原创 2023-06-30 14:25:04 · 49 阅读 · 0 评论 -
36、剑指 Offer 10- I. 斐波那契数列(递归或者滚动数组求解)
剑指 Offer 10- I. 斐波那契数列(递归或者滚动数组求解)原创 2023-06-29 17:59:23 · 47 阅读 · 0 评论 -
1、快速排序(详解和执行流程分析)
将比基准值小的放置于基准的左边,将比基准值大的放置于基准的右边(请注意这里是我们最后想要达到的效果,而不是我们最开始就将小于基准的放置于基准的左边这样操作) 也就是我们是先放置好两边再防止这个基准值也即是我们放置好两边元素,最后再将基准值放置到位最后何时结束?我们递归的时候不是在一直改变分别缩小对应边界和右边界吗,所以左边界 >= 右边界的我们就结束原创 2023-06-29 10:25:08 · 71 阅读 · 0 评论 -
34、剑指 Offer 61. 扑克牌中的顺子
【代码】34、剑指 Offer 61. 扑克牌中的顺子。原创 2023-06-27 11:18:01 · 45 阅读 · 0 评论 -
33、剑指 Offer 17. 打印从1到最大的n位数
【代码】33、剑指 Offer 17. 打印从1到最大的n位数。原创 2023-06-25 15:01:37 · 35 阅读 · 0 评论 -
32、剑指 Offer 68 - II. 二叉树的最近公共祖先(确认递归结束条件)
中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。因为根据定义最近公共祖先节点可以为节点本身。的最近公共祖先是节点。的最近公共祖先是节点。原创 2023-06-24 23:09:03 · 49 阅读 · 0 评论 -
31、剑指 Offer 68 - I. 二叉搜索树的最近公共祖先(遇到 cur节点是数值在[p, q]区间中)
中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。, 因为根据定义最近公共祖先节点可以为节点本身。原创 2023-06-24 16:33:13 · 33 阅读 · 0 评论 -
30、剑指 Offer 55 - II. 平衡二叉树(理解平衡二叉树(递归求解))
判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。原创 2023-06-23 14:23:06 · 32 阅读 · 0 评论 -
29、剑指 Offer 55 - I. 二叉树的深度(理解递归以及里面的回溯(深度优先))
理解:当我们能进入下一层递归的时候我们会进入下一次递归不会执行下面的方法,当我们不能进行下一次递归的时候我们会进行回溯(到上一层递归),并且会执行后面的方法。原创 2023-06-23 11:15:33 · 35 阅读 · 0 评论 -
28、剑指 Offer 28. 对称的二叉树(递归求解)
【代码】28、剑指 Offer 28. 对称的二叉树(递归求解)原创 2023-06-21 19:29:09 · 33 阅读 · 0 评论 -
27、剑指 Offer 27. 二叉树的镜像(递归求解)
【代码】27、剑指 Offer 27. 二叉树的镜像(递归求解)原创 2023-06-15 15:11:51 · 33 阅读 · 0 评论 -
26、剑指 Offer 32 - I. 从上到下打印二叉树
【代码】26、剑指 Offer 32 - I. 从上到下打印二叉树。原创 2023-06-14 00:20:28 · 34 阅读 · 0 评论 -
25、剑指 Offer 32 - II. 从上到下打印二叉树 II
【代码】25、剑指 Offer 32 - II. 从上到下打印二叉树 II。原创 2023-06-13 16:54:02 · 39 阅读 · 0 评论 -
24、202.快乐数(使用set和%去余/取商)
【代码】24、202.快乐数(使用set和%去余/取商)原创 2023-06-12 19:58:43 · 37 阅读 · 0 评论 -
23、349.两个数组的交集(set求解)
【代码】23、349.两个数组的交集(set求解)原创 2023-06-11 10:33:42 · 54 阅读 · 0 评论 -
22、242. 有效的字母异位词(map)
【代码】22、242. 有效的字母异位词。原创 2023-06-05 16:07:33 · 36 阅读 · 0 评论 -
21、209.长度最小的子数组(滑动窗口)
【代码】21、209.长度最小的子数组(滑动窗口)原创 2023-06-05 14:51:53 · 37 阅读 · 0 评论 -
20、977. 有序数组的平方(双指针)
【代码】20、977. 有序数组的平方(双指针)原创 2023-06-05 13:29:13 · 32 阅读 · 0 评论 -
19、27.移除元素(数组问题双指针(快慢指针,都从数组开始指向)覆盖)
重要前提:双指针法定义快慢指针。原创 2023-06-02 14:17:23 · 41 阅读 · 0 评论 -
18、704. 二分查找
【代码】18、704. 二分查找。原创 2023-06-01 16:02:59 · 44 阅读 · 0 评论 -
17、剑指 Offer 11. 旋转数组的最小数字(双指针)
【代码】17、剑指 Offer 11. 旋转数组的最小数字。原创 2023-05-28 22:40:15 · 40 阅读 · 0 评论 -
16、剑指 Offer 57. 和为s的两个数字
【代码】16、剑指 Offer 57. 和为s的两个数字。原创 2023-05-28 21:52:20 · 43 阅读 · 0 评论 -
15、剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
【代码】15、剑指 Offer 21. 调整数组顺序使奇数位于偶数前面。原创 2023-05-28 21:51:44 · 34 阅读 · 0 评论 -
14、lecode:剑指 Offer 29. 顺时针打印矩阵
14、lecode:剑指 Offer 29. 顺时针打印矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。原创 2023-05-27 14:57:32 · 61 阅读 · 0 评论 -
剑指 Offer 58 - I. 翻转单词顺序(双指针)
【代码】剑指 Offer 58 - I. 翻转单词顺序(双指针)原创 2023-05-26 18:22:03 · 37 阅读 · 0 评论 -
12、剑指 Offer 25. 合并两个排序的链表(伪节点)
【代码】12、剑指 Offer 25. 合并两个排序的链表(伪节点)原创 2023-05-26 00:36:37 · 44 阅读 · 0 评论 -
12、Lecode:52 两个链表的第一个公共节点(双指针,我们只跑一遍先让其变为同样长)
【代码】12、Lecode:52 两个链表的第一个公共节点(双指针,我们只跑一遍先让其变为同样长)原创 2023-05-25 16:45:18 · 46 阅读 · 0 评论