代码随想录刷题笔记
文章平均质量分 63
吃瓜太狼
这个作者很懒,什么都没留下…
展开
-
代码随想录训练营 贪心06
当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增。节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。给定一个二叉树,我们在树的节点上安装摄像头。计算监控树的所有节点所需的最小摄像头数量。原创 2023-08-31 09:44:13 · 46 阅读 · 0 评论 -
代码随想录训练营 贪心05
【代码】代码随想录训练营 贪心05。原创 2023-08-30 12:18:29 · 66 阅读 · 0 评论 -
代码随想录训练营 贪心03
给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。如果存在解,则 保证 它是 唯一 的。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。选择某个下标 i 并将 nums[i] 替换为 -nums[i]。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目。原创 2023-08-28 10:08:40 · 57 阅读 · 0 评论 -
代码随想录训练营 贪心01
对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。原创 2023-08-25 09:03:43 · 69 阅读 · 0 评论 -
代码随想录训练营-回溯05
一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。如果存在多种有效的行程,请你按字典排序返回最小的行程组合。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。例如,行程 [“JFK”, “LGA”] 与 [“JFK”, “LGB”] 相比就更小,排序更靠前。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。原创 2023-08-24 10:15:03 · 91 阅读 · 0 评论 -
代码随想录训练营-回溯04
给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 ‘.’ 来形成。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “[email protected]” 是 无效 IP 地址。给你一个整数数组 nums ,数组中的元素 互不相同。给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。原创 2023-08-22 10:48:25 · 55 阅读 · 0 评论 -
代码随想录训练营day23
改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。今天的题目不难,hhh。过几天做个总结吧,最近还是比较忙。通过修剪二叉搜索树,使得所有节点的值在。排列,请你将其转换为一棵。给你二叉搜索树的根节点。原创 2023-08-17 09:05:49 · 46 阅读 · 0 评论 -
代码随想录训练营day21
中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。今天的题好难啊,也许是今天太困了,醒的早睡不着。给你一个含重复值的二叉搜索树(BST)的根节点。差值是一个正数,其数值等于两值之差的绝对值。,找出并返回 BST 中的所有。如果树中有不止一个众数,可以按。给你一个二叉搜索树的根节点。(即,出现频率最高的元素)。原创 2023-08-15 09:34:25 · 125 阅读 · 0 评论 -
代码随想录训练营day18 二叉树
的路径,这条路径上所有节点值相加等于目标和。是同一棵树的后序遍历,请你构造并返回这颗。假设二叉树中至少有一个节点。和一个表示目标和的整数。是二叉树的中序遍历,是指没有子节点的节点。原创 2023-08-12 16:01:12 · 153 阅读 · 0 评论 -
代码随想录训练营day22
中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。返回插入后二叉搜索树的根节点。给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。原创 2023-08-16 09:21:15 · 39 阅读 · 0 评论 -
代码随想录训练营day25 回溯
突然感觉把回溯当成是地下城迷宫的问题就一下子来感觉了,今天稍微能明白点道理了。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。该列表不能包含相同的组合两次,组合可以以任何顺序返回。的字符串,返回所有它能表示的字母组合。所有可能的有效组合的列表。原创 2023-08-19 10:13:47 · 97 阅读 · 0 评论 -
代码随想录训练营day20
想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;返回以该节点为根的子树。如果节点不存在,则返回。null 的节点将直接作为新二叉树的节点。合并过程必须从两个树的根节点开始。你需要在 BST 中找到节点值等于。给定二叉搜索树(BST)的根节点。给定一个不重复的整数数组。返回合并后的二叉树。原创 2023-08-14 08:50:51 · 51 阅读 · 0 评论 -
代码随想录训练营-回溯03
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。回文串 是正着读和反着读都一样的字符串。原创 2023-08-21 12:04:10 · 198 阅读 · 0 评论 -
代码随想录day24 回溯1
【代码】代码随想录day24 回溯1。原创 2023-08-18 09:06:17 · 74 阅读 · 0 评论 -
代码随想录day7
输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输入:nums1 = [0], nums2 = [0], nums3 = [0], nums4 = [0]输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]输入:nums = [1,0,-1,0,-2,2], target = 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输出:[[-1,-1,2],[-1,0,1]]原创 2023-08-01 14:22:33 · 60 阅读 · 0 评论 -
代码随想录训练营day1
追及问题,同向先后双指针,ri指针在前,lf指针在后,ri指针负责遍历全部数组,如果遍历过程中遇到不是val的元素就赋值给lf,并让lf++,如果是val,就跳过,lf不动。对于右闭区间,nums[mid]< target时,ri需要更新,此时明确nums[mid]是不会为target的,所以ri = mid -1。相遇问题,一个在起点,一个在终点,如果lf遇到val,就把ri-1的值赋给lf,ri--,否则lf++右闭区间的写法,再遍历过程中lf原创 2023-07-26 12:57:59 · 451 阅读 · 0 评论 -
代码随想录训练营day2
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。前缀和保留数组前n项元素的和,则有sum[i-1]+s = x ,二分查找寻找x在sum[i]可能出现的位置,只要位置大于等于0,则说明存在记录下标与i之间的差值。遍历n*i次数组,分别求每个连续子数组的和,如果大于则记录长度,注意是连续子数组,不是子数组。思路很简单,遍历数组,Sort.Int排序。排序的整数数组 nums,返回。原创 2023-07-27 14:22:01 · 246 阅读 · 0 评论 -
代码随想录训练营day3打卡
void addAtIndex(int index, int val) 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度,那么该节点会被追加到链表的末尾。给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回。void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。原创 2023-07-28 10:33:17 · 73 阅读 · 0 评论 -
代码随想录训练营day8
比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。541. 反转字符串 II给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。思路:这个题很有意思,主要在k的选择上每次跳动2k大小的区间,前k进行反转即可,如果不满足i+k的限制,就就直接反转。请实现一个函数,把字符串 s 中的每个空格替换成"%20"。原创 2023-08-02 11:00:26 · 80 阅读 · 0 评论 -
代码随想录训练营day5
第二种思路 花了小半个小时找bug,因为涉及三个函数,比较麻烦,这里也可以看出,中等题有些就是简单题的排列组合,所以,基础题要刷的熟练,才能做到中等题的游刃有余,无他,唯手熟而。第二种思路 花了小半个小时找bug,因为涉及三个函数,比较麻烦,这里也可以看出,中等题有些就是简单题的排列组合,所以,基础题要刷的熟练,才能做到中等题的游刃有余,无他,唯手熟而。思路一:保存到数组中,利用数组的性质进行交换,注意一个点,就是如果lf == ri 就不需要在进行ri的交换了,直接 break返回。这样更容易理解一些。原创 2023-07-31 10:44:51 · 89 阅读 · 0 评论 -
代码随想录训练营day4
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。原创 2023-07-29 13:47:15 · 213 阅读 · 0 评论