- 博客(27)
- 收藏
- 关注
原创 动态规划part02 62.不同路径 63. 不同路径 II 343.整数拆分
一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?28。
2024-08-03 01:34:13
495
原创 动态规划part01 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
(通常用F(n)表示)形成的序列称为。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(n) = F(n - 1) + F(n - 2),其中 n > 1给定n,请计算F(n)。n = 21。
2024-08-02 10:32:05
428
原创 贪心算法 part05 56. 合并区间 738.单调递增的数字
以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
2024-08-01 10:11:02
440
原创 贪心算法 part04 452. 用最少数量的箭引爆气球 435. 无重叠区间
有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组points,其中表示水平直径在xstart和xend之间的气球。你不知道气球的确切 y 坐标。一支弓箭可以沿着 x 轴从不同点地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为startend, 且满足end,则该气球会被。可以射出的弓箭的数量。弓箭一旦被射出之后,可以无限地前进。给你一个数组points返回引爆所有气球所必须射出的弓箭数。
2024-07-29 09:47:48
258
原创 贪心算法 part03 134. 加油站 135. 分发糖果 860.柠檬水找零 406.根据身高重建队列
在一条环路上有n个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组gas和cost,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回-1。如果存在解,则它是的。3从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。此时油箱有 = 0 + 4 = 4 升汽油。
2024-07-27 09:51:46
949
原创 贪心算法 part01 455.分发饼干 376. 摆动序列 53. 最大子序和
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果,我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。1你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。所以你应该输出1。
2024-07-22 00:03:42
434
原创 回溯算法 part04 491.递增子序列 46.全排列 47.全排列 II
给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中。你可以按返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。
2024-07-21 10:33:51
370
原创 回溯算法part03 93.复原IP地址 78.子集 90.子集II
正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。给定一个只包含数字的字符串s,用以表示一个 IP 地址,返回所有可能的,这些地址可以通过在s中插入'.'来形成。你重新排序或删除s中的任何数字。你可以按顺序返回答案。
2024-07-20 10:13:53
420
原创 回溯算法part02 39. 组合总和 40.组合总和II 131.分割回文串
给你一个的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的 所有,并以列表形式返回。你可以按返回这些组合。candidates中的数字可以。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target的不同组合数少于150个。[2,3,6,7],target =72 和 3 可以形成一组候选,2 + 2 + 3 = 7。注意 2 可以使用多次。7 也是一个候选, 7 = 7。仅有这两种组合。
2024-07-18 10:21:25
330
原创 回溯算法part 1 77. 组合 216.组合总和III 17.电话号码的字母组合
给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合。你可以按返回答案。
2024-07-16 06:58:20
548
原创 二叉树练习 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树
给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值在中。修剪树改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。[1,null,2]
2024-07-14 21:14:11
294
原创 二叉树练习 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]6节点2和节点8的最近公共祖先是6。
2024-07-14 08:37:42
434
原创 二叉树练习 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数
给你一个二叉搜索树的根节点root,返回。差值是一个正数,其数值等于两值之差的绝对值。1。
2024-07-13 10:17:08
227
原创 二叉树练习 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树
给定一个不重复的整数数组nums。可以用下面的算法从numsnums返回 nums构建的最大二叉树。
2024-07-12 06:40:27
420
原创 二叉树练习 513.找树左下角的值 112. 路径总和 113. 路径总和ii
的路径,这条路径上所有节点值相加等于目标和。等于目标和的根节点到叶节点路径如上图所示。路径总和等于给定目标和的路径。和一个表示目标和的整数。是指没有子节点的节点。是指没有子节点的节点。
2024-07-11 07:45:39
252
原创 二叉树练习 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 222.完全二叉树的节点个数
给定一个二叉树,判断它是否是平衡二叉树true。
2024-07-09 22:05:55
320
原创 二叉树练习 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度
给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。
2024-07-09 09:04:25
337
原创 栈与队列的练习 part2 150. 逆波兰表达式求值 239. 滑动窗口最大值 347.前 K 个高频元素
给你一个字符串数组tokens,表示一个根据表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。'+''-''*''/'9该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。滑动窗口的位置 最大值。
2024-07-07 08:57:06
394
原创 栈与队列的练习 part1 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):实现MyQueueint pop()int peek()truefalsesizeis empty在本题中,我们可以使用两个栈:一个输入栈,一个输出栈,来模拟队列的行为。
2024-07-05 08:37:06
1050
原创 字符串训练2 151.翻转字符串里的单词 卡码网:55.右旋转字符串
给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
2024-07-04 06:52:34
279
原创 day 8 字符串part01
344.反转字符串344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须、使用 O(1) 的额外空间解决这一问题。541. 反转字符串II给定一个字符串s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k字符中的前k个字符。k2kkk"bacdfeg"卡码网:54.替换数字给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。
2024-07-02 06:21:27
212
原创 哈希表练习:454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
给你四个整数数组 、、 和 ,数组长度都是 ,请你计算有多少个元组 能满足:示例 1:输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输出:2解释:两个元组如下:1. (0, 0, 0, 1) -> nums1[0] + nums2[0] + nums3[0] + nums4[1] = 1 + (-2) + (-1) + 2 = 02. (1, 1, 0, 0) -> nums1[1] + nums
2024-07-01 08:58:52
425
原创 哈希表01 有效的字母异位词 两个数组的交集 快乐数 两数之和
给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。
2024-06-28 06:26:51
332
原创 Day4 两两交换链表中的节点 删除链表的倒数第N个节点 链表相交 环形链表II
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。[2,1,4,3]在这道题中,使用虚拟头节点可以更方便的操作链表的头节点。
2024-06-27 21:55:45
700
原创 Day3 移除链表元素 设计链表 反转链表
/ 链表变为 1->2->3。// 现在,链表变为 1->3。在这道题中,使用虚拟头节点(哨兵节点)可以方便我们进行链表的增删改的操作。通过让当前节点的next指针指向下下一个节点以达到在链表中删除元素的目的。以指示链表中的上一个节点。假设链表中的所有节点下标从。你可以选择使用单链表或者双链表,设计并实现自己的链表。,请你反转链表,并返回反转后的链表。是指向下一个节点的指针/引用。给你一个链表的头节点。
2024-06-26 10:22:01
737
原创 Day2 有序数组的平方 长度最小的子数组 螺旋矩阵II
这道题的暴力解法是通过两个for循环不断的寻找符合条件的子序列。然而,这种方法的时间复杂度是O(n^2),在leetcode中存在超时的情况。由于这是一个含负数的非递减顺序数组,将其元素平方之后可能会得到一个两边最大并向中间递减的数组。每填充一条边都要坚持一致的左闭右开,或者左开右闭的原则。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]子数组[4,3]是该条件下的长度最小的子数组。,来达到使用一个for循环寻找子序列的目的。组成的新数组,要求也按。
2024-06-24 04:23:41
313
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅