自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Day34: 动态规划基础 ||

机器人试图达到网格的右下角(在下图中标记为 “Finish” )。机器人试图达到网格的右下角(在下图中标记为“Finish”)。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。1. 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右。3. 向下 -> 向右 -> 向下。

2024-09-03 08:40:51 279

原创 Day32: 动态规划基础 I

斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给你n ,请计算 F(n)。数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。

2024-09-01 23:45:11 369

原创 Day 31: 贪心算法基础 V

例如:98,一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]--,然后strNum[i]给为9,这样这个整数就是89,即小于98的最大的单调递增整数。从前向后遍历的话,遇到strNum[i - 1] > strNum[i]的情况,让strNum[i - 1]减一,但此时如果strNum[i - 1]减一了,可能又小于strNum[i - 2]。题目要求小于等于N的最大单调递增的整数,那么拿一个两位的数字来举例。

2024-09-01 23:17:49 750

原创 Day30: 贪心算法基础 |V

在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。给你一个数组 points ,其中 points [i] = [xstart,xend] ,返回引爆所有气球所必须射出的最小弓箭数。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。763.划分字母区间。

2024-08-30 09:17:39 731

原创 Day29: 贪心算法基础 |||

i从0开始累加rest[i],和记为curSum,一旦curSum小于零,说明[0, i]区间都不能作为起始位置,因为这个区间选择任何一个位置作为起点,到i这里都会断油,那么起始位置从i+1算起,再从0计算curSum。情况二:rest[i] = gas[i]-cost[i]为一天剩下的油,i从0开始计算累加到最后一站,如果累加没有出现负数,说明从0出发,油就没有断过,那么0就是起点。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。

2024-08-29 08:54:56 916

原创 Day28: 贪心算法基础 ||

每次移动取最大跳跃步数(得到最大的覆盖范围),每移动一个单位,就更新最大覆盖范围。不一定非要明确一次究竟跳几步,每次取最大的跳跃步数,这个就是可以跳跃的覆盖范围。给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。你的目标是使用最少的跳跃次数到达数组的最后一个位置。给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。

2024-08-28 09:13:18 708

原创 Day27: 贪心算法基础 |

455.分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。376. 摆动序列 (需要回看)如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。

2024-08-26 09:11:24 1515

原创 Day25: 回溯算法 IV

看完官方题解,我以上的解法其实不需要 helperSet,因为在开始我已经排过序了,所以可以直接判断:if (i > 0 && nums[i] === nums[i - 1]) continue;给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了。这又是子集,又是去重,是不是不由自主的想起了刚刚讲过的。这里又涉及到去重了。

2024-08-25 16:02:59 838

原创 Day24: 回溯基础 |||

例如:"0.1.2.201" 和 "192.168.1.1" 是 有效的 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效的 IP 地址。示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。

2024-08-23 08:55:31 151

原创 Day23: 回溯基础 ||

给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。都知道组合问题可以抽象为树形结构,那么“使用过”在这个树形结构上是有两个维度的,一个维度是同一树枝上使用过,一个维度是同一树层上使用过。注意题目中给我们 集合是有重复元素的,那么求出来的 组合有可能重复,但题目要求不能有重复组合。此时可以发现,切割问题的回溯搜索的过程和组合问题的回溯搜索的过程是差不多的。串是向前和向后读都相同的字符串。这么一说好像很简单!

2024-08-22 09:07:33 425

原创 Day22: 回溯基础 |

示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]]给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]]说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。注意 1 不对应任何字母。

2024-08-21 09:12:31 253

原创 Day 21: 二叉树基础 VIII

你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。踩坑点:刚开始我写的是 right - left <=1 , 终止条件应该是 right - left < 1 或 right <= left。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

2024-08-20 08:50:02 144

原创 Day20: 二叉树基础 VII

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。树, 找到该树中两个指定节点的最近公共祖先。450.删除二叉搜索树中的节点 (需要回看)235. 二叉搜索树的最近公共祖先。701.二叉搜索树中的插入操作。

2024-08-19 09:17:23 179

原创 Day18: 二叉树基础 VI

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。530.二叉搜索树的最小绝对差。236. 二叉树的最近公共祖先。501.二叉搜索树中的众数。

2024-08-18 19:56:46 146

原创 Day17: 二叉树基础 V

你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。给定二叉搜索树(BST)的根节点和一个值。你需要在BST中找到节点值等于给定值的节点。返回以该节点为根的子树。root1 &&!给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。给定一个不含重复元素的整数数组。通过给定的数组构建最大二叉树,并且输出这个树的根节点。给定一个二叉树,判断其是否是一个有效的二叉搜索树。

2024-08-16 09:11:16 187

原创 Day16:二叉树基础 |V

官方题解:递归法。

2024-08-15 22:47:15 133

原创 Day15:二叉树基础 |||

对于情况二,分别递归左孩子,和右孩子,递归到某一深度一定会有左孩子或者右孩子为满二叉树,然后依然可以按照情况1来计算。可以看出如果整个树不是满二叉树,就递归其左右孩子,直到遇到满二叉树为止,用公式计算这个子树(满二叉树)的节点数量。在完全二叉树中,如果递归向左遍历的深度等于递归向右遍历的深度,那说明就是满二叉树。在完全二叉树中,如果递归向左遍历的深度不等于递归向右遍历的深度,则说明不是满二叉树。完全二叉树只有两种情况,情况一:就是满二叉树,情况二:最后一层叶子节点没有满。257. 二叉树的所有路径。

2024-08-14 09:11:01 272

原创 Day14: 二叉树基础 ||

226.翻转二叉树101. 对称二叉树 (需要回看)

2024-08-13 23:29:10 195

原创 Day13: 二叉树基础 |

递归遍历前序遍历中序遍历后序遍历迭代遍历 (需要回看)前序遍历前序遍历是中左右,每次先处理的是中间节点,那么先将根节点放入栈中,然后将右孩子加入栈,再加入左孩子。为什么要先加入 右孩子,再加入左孩子呢?因为这样出栈的时候才是中左右的顺序。中序遍历分析一下为什么刚刚写的前序遍历的代码,不能和中序遍历通用呢,因为前序遍历的顺序是中左右,先访问的元素是中间节点,要处理的元素也是中间节点,所以刚刚才能写出相对简洁的代码,

2024-08-12 23:10:41 254

原创 Day11: 栈与队列基础 ||

向零截断: Math.trunc。150. 逆波兰表达式求值。347.前 K 个高频元素。239. 滑动窗口最大值。但这个题本质上是要考。

2024-08-11 15:51:35 112

原创 Day10: 栈与队列基础 |

方法返回一个布尔值,表示对象自有属性(而不是继承来的属性)中是否具有指定的属性。使用栈来模式队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈。,再从出栈弹出数据,如果输出栈不为空,则直接从出栈弹出数据就可以了。版本一: 用两个队列模拟栈,由于官方题解始终只保持一个题解有值,所以。这是一道模拟题,不涉及到具体算法,考察的就是对栈和队列的掌握程度。在push数据的时候,只要数据放进输入栈就好,优化:其实这道题目就是用一个队列就够了。,这里要注意输入栈和输出栈的关系。最后如何判断队列为空呢?

2024-08-11 14:14:45 200

原创 Day9: 字符串基础 ||

151.翻转字符串里的单词。卡码网:55.右旋转字符串。

2024-08-08 22:47:54 116

原创 Day8: 字符串基础 |

2. 怎么判断一个字符是 数字 还是 字母:使用 Number 转换一个字符,如果是 NaN 则代表该字符是字母。541. 反转字符串II。1. ACM 格式怎么写。借用上一个题写的函数。

2024-08-08 09:21:33 210

原创 Day7: 哈希表基础 ||

接下来如何移动left 和right呢, 如果nums[i] + nums[left] + nums[right] > 0 就说明 此时三数之和大了,因为数组是排序后了,所以right下标就应该向左移动,这样才能让三数之和小一些。这么写就是当前使用 nums[i],我们判断前一位是不是一样的元素,在看 {-1, -1 ,2} 这组数据,当遍历到 第一个 -1 的时候,只要前一位没有-1,那么 {-1, -1 ,2} 这组数据一样可以收录到 结果集里。有同学可能想,这不都一样吗。454.四数相加II。

2024-08-08 00:31:51 278

原创 Day 6: 哈希表基础

242.有效的字母异位词349. 两个数组的交集202. 快乐数官方题解:这里太秀了。

2024-08-05 21:49:01 115

原创 Day4: 链表基础 II

看了官方题解,首先,获取链表长度可以抽成一个方法,这样可以减少重复代码,第二,如果 lenA < lenB, 就交换两个指针并且交换 lenA 和 lenB,这样可以在后面统一处理。多用了一个指针,由于 prePoint 和 curPoint 的关系永远是挨着的,所以完全可以用一个指针代替。

2024-08-04 15:08:52 145

原创 Day3: 链表基础

官方题解:官方维护了链表的长度,这对这个题非常有利,尤其是 addAtIndex 这个函数的边界判断:如果 index等于链表的长度,则该节点将附加到链表的末尾。如果 index大于链表长度,则不会插入节点。如果 index小于0,则在头部插入节点。203.移除链表元素。

2024-08-02 22:19:22 239

原创 Day2: 数组基础 ||

如果有负数的话感觉也不能用滑动窗口了,因为有负数的话无论你收缩还是扩张窗口,你里面的值的总和都可能增加或减少,就不像之前收缩一定变小,扩张一定变大,一切就变得不可控了。如果要 cover 所有的情况,那每次 left 都要缩到 right,那就退化为暴力了。注意要区分基数和偶数的情况。209.长度最小的子数组。

2024-08-01 23:11:45 220

原创 Day1: 数组基础

写二分法,区间的定义一般为两种,左闭右闭即[left, right],或者左闭右开即[left, right)。要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是。704. 二分查找 27. 移除元素 977.有序数组的平方。2. 数组中无重复元素。大家写二分法经常写乱,主要是因为。

2024-07-31 23:15:26 140

原创 摄像头 opencv报错 error: (-215) size.width>0 && size.height>0 in function cv::imshow

第一次用opencv打开摄像头,发现报错。原因应该是网络摄像头打开时要顿2秒左右进行自检造成。解决方法如下图,给imshow加个if判断。

2021-11-08 10:17:59 675

原创 Xcode识别不了相对路径,只能识别绝对路径

product->scheme->edit scheme->Run->options->把 usingcustom working directory前面的勾选上,然后把当前工程的路径填补上去。

2021-11-08 09:31:36 248

转载 Hession矩阵

1. 标量对向量求导:结果是向量事实上这就是所谓的Gradient,即对于一般标量函数 f(x), 其中向量为 x=(x1,...,xn),导数为:也记为:2. 向量对向量求导:结果是矩阵一阶导:这个当然也是gradient,当然这准确的说应该叫matrix gradient. 即对于向量值函数 f(x), 其中 x=(x1,...,xn) , f=(f1,...,fm...

2021-10-31 08:16:30 487

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除