- 博客(34)
- 收藏
- 关注
原创 代码随想录Day39:198.打家劫舍、213.打家劫舍II、337.打家劫舍III
树形dp题目,房屋变为树状结构,需要采取迭代方法遍历,采用后序遍历,当前节点偷不偷取决于左右子节点偷不偷,记录每个节点偷和不偷的情况。房屋变为环状,对于给定数组,分别去掉首位、末位,均可按照非环状情况处理,再取最大值即可。dp[i]偷或不偷,取决于dp[i-1]和dp[i-2]是否偷。
2024-08-27 16:06:57
287
原创 代码随想录Day38:322.零钱兑换、279.完全平方数、139.单词拆分
目标单词看作背包,单词集合中的单词看作物品,类似于排列数,先遍历背包,再遍历物品。
2024-08-27 15:53:40
351
原创 代码随想录Day37:卡码网52.携带研究材料、518.零钱兑换II、377.组合总和IV、卡码网70.爬楼梯
组合数,先遍历物品,再遍历背包。排列数,先遍历背包,再遍历物品。
2024-08-27 15:43:21
419
原创 代码随想录Day36:1049.最后一块石头的重量II、494.目标和、474.一和零
有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。最后,石头。返回此石头。如果没有石头剩下,就返回 0。
2024-08-17 23:35:46
510
原创 代码随想录Day35:卡码网46.携带研究材料、416.分割等和子集
小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的空间,并且具有不同的价值。小明的行李空间为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料只能选择一次,并且只有选与不选两种选择,不能进行切割。
2024-08-17 22:41:41
417
原创 代码随想录Day34:62.不同路径、63.不同路径II、343.整数拆分、96.不同的二叉搜索树
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?
2024-08-17 22:08:36
1878
原创 代码随想录Day32:509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。F(n) = F(n - 1) + F(n - 2),其中 n > 1。dp[i]表示爬到第 i 阶楼梯的方法数,优化空间复杂度类似上题。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。dp[i]表示爬到第 i 阶楼梯的最低花费。给定 n ,请计算 F(n)。
2024-08-16 22:02:22
345
原创 代码随想录Day31:56.合并区间、738.单调递增的数字
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
2024-08-16 21:23:05
348
原创 代码随想录Day30:452.用最少数量的箭引爆气球、435.无重叠区间、763.划分字母区间
有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。一支弓箭可以沿着 x 轴从不同点地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被。可以射出的弓箭的数量。弓箭一旦被射出之后,可以无限地前进。
2024-08-15 22:58:38
1500
原创 代码随想录Day29:134.加油站、135.分发糖果、860.柠檬水找零、406.根据身高重建队列
在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。如果存在解,则它是的。
2024-08-10 12:22:29
846
原创 代码随想录Day28:122.买卖股票的最佳时机II、55.跳跃游戏、45.跳跃游戏II、1005.K次取反后最大化的数组和
给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。返回 你能获得的 最大 利润。
2024-08-10 12:21:47
727
原创 代码随想录Day27:455.分发饼干、376.摆动序列、53.最大子数组和
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
2024-07-29 18:00:17
341
原创 代码随想录Day25:491.非递减子序列、46.全排列、47.全排列II
给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素。你可以按 任意顺序 返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。
2024-07-29 16:47:45
402
原创 代码随想录Day24:93.复原IP地址、78.子集、90.子集II
有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 ‘.’ 来形成。你 不能 重新排序或删除 s 中的任何数字。你可以按 任何 顺序返回答案。
2024-07-29 15:09:09
386
原创 代码随想录Day23:39.组合总和、40.组合总和II、131.分割回文串
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。
2024-07-29 10:36:27
368
原创 代码随想录Day22:77.组合、216.组合总和III、17.电话号码的字母组合
回溯法解决的问题是在集合中递归查找子集,可以抽象为树形结构,集合的大小就构成了树的宽度,递归的深度就构成了树的深度。
2024-07-29 09:16:10
753
原创 代码随想录Day21:669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在 唯一的答案。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。
2024-07-28 20:24:26
397
原创 代码随想录Day20:235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。
2024-07-28 20:22:17
391
原创 代码随想录Day18:530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236.二叉树的最近公共祖先
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值。差值是一个正数,其数值等于两值之差的绝对值。
2024-07-23 00:29:25
450
原创 代码随想录Day17:654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
给定一个不重复的整数数组 nums。返回 nums 构建的 最大二叉树。
2024-07-22 21:20:36
438
原创 代码随想录Day16:513.找树左下角的值、112.路经总和、113.路经总和II、106.从中序与后序遍历序列构造二叉树
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。
2024-07-21 22:59:51
410
原创 代码随想录Day15:110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和、222.完全二叉树的节点个数
给定一个二叉树,判断它是否是。
2024-07-21 20:12:34
416
原创 代码随想录Day14:226.翻转二叉树、101.对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
2024-07-16 11:43:19
353
原创 代码随想录Day13:二叉树的深度优先遍历、二叉树的广度优先遍历
给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历。给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。给你二叉树的根节点 root ,返回其节点值的 层序遍历。给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。
2024-07-15 16:43:55
556
原创 代码随想录Day11:150.逆波兰表达式求值、239.滑动窗口最大值、347.前K个高频元素
给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。
2024-07-14 22:43:38
368
原创 代码随想录Day10:232.用栈实现队列、225.用队列实现栈、20.有效的括号、1047.删除字符串中的所有相邻重复项
请你仅使用两个栈实现先入先出队列。
2024-07-13 22:07:43
842
原创 代码随想录Day09:151.反转字符串中的单词、卡码网55.右旋字符串、28.找出字符串中第一个匹配项的下标、459.重复的子字符串
给你一个字符串 s ,请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
2024-07-13 20:37:04
656
原创 代码随想录Day08:344.反转字符串、541.反转字符串II、卡码网54.替换数字
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
2024-07-10 21:19:22
443
原创 代码随想录Day07:454.四数相加II、383.赎金信、15.三数之和、18.四数之和
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。
2024-07-09 22:01:19
777
原创 代码随想录Day06:242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
2024-07-09 20:46:45
534
原创 代码随想录Day04:24.两两交换链表中的节点、19.删除链表的倒数第N个节点、160.相交链表、142.环形链表II
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
2024-07-07 20:17:00
433
原创 代码随想录Day03:203.移除链表元素、707.设计链表、206.反转链表
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。
2024-07-05 21:00:08
1639
原创 代码随想录Day02:977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II
给你一个按排序的整数数组 nums,返回组成的新数组,要求也按排序。
2024-07-04 21:24:15
569
原创 代码随想录Day01:704.二分查找、27.移除元素
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。题目强调数组有序且元素不重复,考虑使用二分法,需要注意区间的定义。时间复杂度:O(logn)空间复杂度:O(1)时间复杂度:O(logn)空间复杂度:O(1)27. 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与
2024-07-03 20:30:17
645
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人