自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

<font color="Pink">Tisfy的博客</font>

也许会有宝藏哦--LetMeFly

  • 博客(811)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 复习,网课,视频回放,太慢怎么办,试试倍速播放吧 (无需下载)

临近期末,复习任务繁忙,想要会看视频,却又觉得视频讲得太慢,那么该如何实现网页端的强制倍速播放呢?大多浏览器都带有开发人员选项,以谷歌浏览器为例:这是我校的在线教育平台,可以看到暂时没有倍速播放按钮具体方法如下:如果您是懂得浏览器开发人员选项的程序猿,可以直接转到文章末尾的总结总结 传送门下面是比较详细的描述:1.打开开发人员选项方法有至少两种:方法一:右键,检查(或者Ctrl+Shift+I)方法二:按 F12 或 Fn+F12会出现开发人员选项2.选择元素1.按元素选择

2020-06-25 17:07:30 64438 141

原创 LeetCode 2385.感染二叉树需要的总时间:两次搜索(深搜 + 广搜)

LeetCode 2385.感染二叉树需要的总时间:两次搜索(深搜 + 广搜)给你一棵二叉树的根节点 root ,二叉树中节点的值 互不相同 。另给你一个整数 start 。在第 0 分钟,感染 将会从值为 start 的节点开始爆发。每分钟,如果节点满足以下全部条件,就会被感染:节点此前还没有感染。节点与一个已感染节点相邻。返回感染整棵树需要的分钟数。

2024-04-24 23:48:40 308

原创 LeetCode 1052.爱生气的书店老板:滑动窗口

LeetCode 1052.爱生气的书店老板:滑动窗口有一个书店老板,他的书店开了 n 分钟。每分钟都有一些顾客进入这家商店。给定一个长度为 n 的整数数组 customers ,其中 customers[i] 是在第 i 分钟开始时进入商店的顾客数量,所有这些顾客在第 i 分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。当书店老板生气时,那一分钟的顾客就会不满意,若老板不生气则顾客是满意的。书店

2024-04-23 23:20:56 617

原创 LeetCode 0216.组合总和 III:回溯(剪枝) OR 二进制枚举

LeetCode 0216.组合总和 III:回溯(剪枝) OR 二进制枚举找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。

2024-04-21 14:27:41 729

原创 LeetCode 0039.组合总和:回溯 + 剪枝

LeetCode 0039.组合总和:回溯 + 剪枝给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target 的不同组合数少于 150 个。

2024-04-20 11:28:23 1083

原创 LeetCode 2007.从双倍数组中还原原数组:哈希表——从nlogn到n

LeetCode 2007.从双倍数组中还原原数组:哈希表——从nlogn到n一个整数数组 original 可以转变成一个 双倍 数组 changed ,转变方式为将 original 中每个元素 值乘以 2 加入数组中,然后将所有元素 随机打乱 。给你一个数组 changed ,如果 change 是 双倍 数组,那么请你返回 original数组,否则请返回空数组。original 的元素可以以 任意 顺序返回。

2024-04-18 16:05:01 699

原创 LeetCode 0924.尽量减少恶意软件的传播:连通块染色(以BFS为例)

LeetCode 0924.尽量减少恶意软件的传播:连通块染色(以BFS为例)给出了一个由 n 个节点组成的网络,用 n × n 个邻接矩阵图 graph 表示。在节点网络中,当 graph[i][j] = 1 时,表示节点 i 能够直接连接到另一个节点 j。 一些节点 initial 最初被恶意软件感染。只要两个节点直接连接,且其中至少一个节点受到恶意软件的感染,那么两个节点都将被恶意软件感染。这种恶意软件的传播将继续,直到没有更多的节点可以被这种方式感染。假设 M(initial) 是在恶意软

2024-04-16 10:32:37 733

原创 LeetCode 706.设计哈希映射:使用数组实现好了

LeetCode 706.设计哈希映射:使用数组实现好了不使用任何内建的哈希表库设计一个哈希映射(HashMap)。实现 MyHashMap 类:MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中,则更新其对应的值 value 。int get(int key) 返回特定的 key 所映射的 value ;如果映射中不包含 key 的映射,返回 -1

2024-04-15 17:24:27 597

原创 LeetCode 0705.设计哈希集合:很多人都是这样做的吧【逃】

LeetCode 0705.设计哈希集合:很多人都是这样做的吧【逃】不使用任何内建的哈希表库设计一个哈希集合(HashSet)。实现 MyHashSet 类:void add(key) 向哈希集合中插入值 key 。bool contains(key) 返回哈希集合中是否存在这个值 key 。void remove(key) 将给定值 key 从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。

2024-04-14 10:11:36 751

原创 LeetCode 2924.找到冠军 II:脑筋急转弯——只关心入度

LeetCode 2924.找到冠军 II:脑筋急转弯——只关心入度一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。每支队伍也是 有向无环图(DAG) 上的一个节点。给你一个整数 n 和一个下标从 0 开始、长度为 m 的二维整数数组 edges 表示这个有向无环图,其中 edges[i] = [ui, vi] 表示图中存在一条从 ui 队到 vi 队的有向边。从 a 队到 b 队的有向边意味着 a 队比 b 队 强 ,也就是 b 队比 a 队 弱 。在这场比赛中,如果不存在某支

2024-04-13 09:47:57 937

原创 LeetCode 2923.找到冠军 I:O(n^2)和O(n)的做法

LeetCode 2923.找到冠军 I:O(n^2)和O(n)的做法一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。给你一个下标从 0 开始、大小为 n * n 的二维布尔矩阵 grid 。对于满足 0

2024-04-12 14:02:35 988

原创 LeetCode 1766.互质树:设计(深度优先搜索)

LeetCode 1766.互质树:设计(深度优先搜索)给你一个 n 个节点的树(也就是一个无环连通无向图),节点编号从 0 到 n - 1 ,且恰好有 n - 1 条边,每个节点有一个值。树的 根节点 为 0 号点。给你一个整数数组 nums 和一个二维数组 edges 来表示这棵树。nums[i] 表示第 i 个点的值,edges[j] = [uj, vj] 表示节点 uj 和节点 vj 在树中有一条边。当 gcd(x, y) == 1 ,我们称两个数 x 和 y 是 互质的 ,其中 gcd(

2024-04-11 15:42:16 900

原创 LeetCode 1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心)

LeetCode 1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心)给你一个二进制字符串 binary ,它仅有 0 或者 1 组成。你可以使用下面的操作任意次对它进行修改:操作 1 :如果二进制串包含子字符串 "00" ,你可以用 "10" 将其替换。比方说, "00010" -> "10010"操作 2 :如果二进制串包含子字符串 "10" ,你可以用 "01" 将其替换。比方说, "00010" -> "00001"请你返回执行上述操作任意次以后能得到的 最大二进制字符串 。如

2024-04-10 13:39:02 895

原创 LeetCode 2529.正整数和负整数的最大计数:遍历计数 OR 二分查找

LeetCode 2529.正整数和负整数的最大计数:遍历计数 OR 二分查找给你一个按 非递减顺序 排列的数组 nums ,返回正整数数目和负整数数目中的最大值。换句话讲,如果 nums 中正整数的数目是 pos ,而负整数的数目是 neg ,返回 pos 和 neg二者中的最大值。注意:0 既不是正整数也不是负整数。

2024-04-09 17:24:32 1044

原创 LeetCode 2009.使数组连续的最少操作数:去重排序 + 滑动窗口

LeetCode 2009.使数组连续的最少操作数:去重排序 + 滑动窗口给你一个整数数组 nums 。每一次操作中,你可以将 nums 中 任意 一个元素替换成 任意 整数。如果 nums 满足以下条件,那么它是 连续的 :nums 中所有元素都是 互不相同 的。nums 中 最大 元素与 最小 元素的差等于 nums.length - 1 。比方说,nums = [4, 2, 5, 3] 是 连续的 ,但是 nums = [1, 2, 3, 5, 6] 不是连续的 。请你返回使 num

2024-04-08 15:00:30 996

原创 LeetCode 1600.王位继承顺序:深度优先搜索(DFS)

LeetCode 1600.王位继承顺序:深度优先搜索(DFS)一个王国里住着国王、他的孩子们、他的孙子们等等。每一个时间点,这个家庭里有人出生也有人死亡。这个王国有一个明确规定的王位继承顺序,第一继承人总是国王自己。我们定义递归函数 Successor(x, curOrder) ,给定一个人 x 和当前的继承顺序,该函数返回 x 的下一继承人。Successor(x, curOrder): 如果 x 没有孩子或者所有 x 的孩子都在 curOrder 中: 如果 x 是国

2024-04-07 17:28:25 1111

原创 FFmpeg - 如何在Linux上安装支持CUDA的FFmpeg

FFmpeg - 如何在Linux上安装支持CUDA的FFmpeg笔者认为现在的很多“xx教程”只讲干什么不讲为什么,这样即使报错了看官也不知道如何解决。

2024-04-07 11:50:15 651

原创 LeetCode 1483.树节点的第 K 个祖先:树上倍增

LeetCode 1483.树节点的第 K 个祖先:树上倍增给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出,其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。树节点的第 k 个祖先节点是从该节点到根节点路径上的第 k 个节点。实现 TreeAncestor 类:TreeAncestor(int n, int[] parent) 对树和父数组中的节点数初始化对象。getKthAncestor(int node, int k)

2024-04-06 13:19:44 884

原创 LeetCode 2192.有向无环图中一个节点的所有祖先:拓扑排序

LeetCode 2192.有向无环图中一个节点的所有祖先:拓扑排序给你一个正整数 n ,它表示一个 有向无环图 中节点的数目,节点编号为 0 到 n - 1 (包括两者)。给你一个二维整数数组 edges ,其中 edges[i] = [fromi, toi] 表示图中一条从 fromi 到 toi 的单向边。请你返回一个数组 answer,其中 answer[i]是第 i 个节点的所有 祖先 ,这些祖先节点 升序 排序。如果 u 通过一系列边,能够到达 v ,那么我们称节点 u 是节点 v

2024-04-04 15:51:02 963

原创 LeetCode 1379.找出克隆二叉树中的相同节点:二叉树遍历

LeetCode 1379.找出克隆二叉树中的相同节点:二叉树遍历给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target。其中,克隆树 cloned 是原始树 original 的一个 副本 。请找出在树 cloned 中,与 target 相同 的节点,并返回对该节点的引用(在 C/C++ 等有指针的语言中返回 节点指针,其他语言返回节点本身)。 注意:你 不能 对两棵二叉树,以及 target 节点进行更改。只

2024-04-03 13:19:52 1047

原创 LeetCode 2810.故障键盘:双端队列模拟

LeetCode 2810.故障键盘:双端队列模拟你的笔记本键盘存在故障,每当你在上面输入字符 'i' 时,它会反转你所写的字符串。而输入其他字符则可以正常工作。给你一个下标从 0 开始的字符串 s ,请你用故障键盘依次输入每个字符。返回最终笔记本屏幕上输出的字符串。

2024-04-01 18:26:36 914

原创 LeetCode 2952.需要添加的硬币的最小数量:贪心(排序)

LeetCode 2952.需要添加的硬币的最小数量:贪心(排序)给你一个下标从 0 开始的整数数组 coins,表示可用的硬币的面值,以及一个整数 target 。如果存在某个 coins 的子序列总和为 x,那么整数 x 就是一个 可取得的金额 。返回需要添加到数组中的 任意面值 硬币的 最小数量 ,使范围 [1, target] 内的每个整数都属于 可取得的金额 。数组的 子序列 是通过删除原始数组的一些(可能不删除)元素而形成的新的 非空 数组,删除过程不会改变剩余元素的相对位置。

2024-03-30 22:41:12 676

原创 LeetCode 2908.元素和最小的山形三元组 I:贪心(两次遍历)——双O(n)复杂度

LeetCode 2908.元素和最小的山形三元组 I:贪心(两次遍历)——双O(n)复杂度给你一个下标从 0 开始的整数数组 nums 。如果下标三元组 (i, j, k) 满足下述全部条件,则认为它是一个 山形三元组 :i < j < knums[i] < nums[j] 且 nums[k] < nums[j]请你找出 nums 中 元素和最小 的山形三元组,并返回其 元素和 。如果不存在满足条件的三元组,返回 -1

2024-03-29 17:19:57 1024

原创 LeetCode 1997.访问完所有房间的第一天:动态规划(DP)——4行主要代码(不需要什么前缀和)

LeetCode 1997.访问完所有房间的第一天:动态规划(DP)——4行主要代码(不需要什么前缀和)你需要访问 n 个房间,房间从 0 到 n - 1 编号。同时,每一天都有一个日期编号,从 0 开始,依天数递增。你每天都会访问一个房间。最开始的第 0 天,你访问 0 号房间。给你一个长度为 n 且 下标从 0 开始 的数组 nextVisit 。在接下来的几天中,你访问房间的 次序 将根据下面的 规则 决定:假设某一天,你访问 i 号房间。如果算上本次访问,访问 i 号房间的次数为 奇数

2024-03-28 17:47:09 968

原创 LeetCode 2580.统计将重叠区间合并成组的方案数:排序(几行代码解决)——一步步思路描述版

LeetCode 2580.统计将重叠区间合并成组的方案数:排序(几行代码解决)——一步步思路描述版给你一个二维整数数组 ranges ,其中 ranges[i] = [starti, endi] 表示 starti 到 endi 之间(包括二者)的所有整数都包含在第 i 个区间中。你需要将 ranges 分成 两个 组(可以为空),满足:每个区间只属于一个组。两个有 交集 的区间必须在 同一个 组内。如果两个区间有至少 一个 公共整数,那么这两个区间是 有交集 的。比方说,区间 [1,

2024-03-27 13:36:46 835

原创 LeetCode 0322.零钱兑换:动态规划(DP)

LeetCode 0322.零钱兑换:动态规划(DP)给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。

2024-03-24 12:11:52 654

原创 2549.统计桌面上的不同数字:数学O(1) / 模拟O(n^3)

2549.统计桌面上的不同数字:数学O(1) / 模拟O(n^3)给你一个正整数 n ,开始时,它放在桌面上。在 109 天内,每天都要执行下述步骤:对于出现在桌面上的每个数字 x ,找出符合 1

2024-03-23 11:33:22 1006

原创 LeetCode 2671.频率跟踪器:俩计数哈希表

LeetCode 2671.频率跟踪器:俩计数哈希表请你设计并实现一个能够对其中的值进行跟踪的数据结构,并支持对频率相关查询进行应答。实现 FrequencyTracker 类:FrequencyTracker():使用一个空数组初始化 FrequencyTracker 对象。void add(int number):添加一个 number 到数据结构中。void deleteOne(int number):从数据结构中删除一个 number 。数据结构 可能不包含 number ,在这种情况

2024-03-21 22:35:09 1052

原创 LeetCode 1969.数组元素的最小非零乘积:贪心(快速幂)

LeetCode 1969.数组元素的最小非零乘积:贪心(快速幂)给你一个正整数 p 。你有一个下标从 1 开始的数组 nums ,这个数组包含范围 [1, 2p - 1] 内所有整数的二进制形式(两端都 包含)。你可以进行以下操作 任意 次:从 nums 中选择两个元素 x 和 y 。选择 x 中的一位与 y 对应位置的位交换。对应位置指的是两个整数 相同位置 的二进制位。比方说,如果 x = 1101 且 y = 0011 ,交换右边数起第 2 位后,我们得到 x = 1111 和 y =

2024-03-20 12:04:02 813

原创 LeetCode 0303.区域和检索 - 数组不可变:前缀和(两行描述核心思路版本)

LeetCode 0303.区域和检索 - 数组不可变:前缀和(两行描述核心思路版本)给定一个整数数组 nums,处理以下类型的多个查询:计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left

2024-03-18 10:17:40 845

原创 LeetCode 0310.最小高度树:拓扑排序秒了

LeetCode 0310.最小高度树:拓扑排序秒了树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。给你一棵包含 n 个节点的树,标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表(每一个边都是一对标签),其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条无向边。可选择树中任何一个节点作为根。当选择节点 x 作为根节点时,设结果树的高度为 h 。在所有可能的树中

2024-03-17 21:18:42 946

原创 LeetCode 2684.矩阵中移动的最大次数:一列一列处理,只记能到哪行(BFS)

LeetCode 2684.矩阵中移动的最大次数:一列一列处理,只记能到哪行(BFS)给你一个下标从 0 开始、大小为 m x n 的矩阵 grid ,矩阵由若干 正 整数组成。你可以从矩阵第一列中的 任一 单元格出发,按以下方式遍历 grid :从单元格 (row, col) 可以移动到 (row - 1, col + 1)、(row, col + 1) 和 (row + 1, col + 1) 三个单元格中任一满足值 严格 大于当前单元格的单元格。返回你在矩阵中能够 移动 的 最大 次数。

2024-03-16 09:58:49 1049

原创 LeetCode 2312.卖木头块:动态规划(DP)

LeetCode 2312.卖木头块:动态规划(DP)给你两个整数 m 和 n ,分别表示一块矩形木块的高和宽。同时给你一个二维整数数组 prices ,其中 prices[i] = [hi, wi, pricei] 表示你可以以 pricei 元的价格卖一块高为 hi 宽为 wi 的矩形木块。每一次操作中,你必须按下述方式之一执行切割操作,以得到两块更小的矩形木块:沿垂直方向按高度 完全 切割木块,或沿水平方向按宽度 完全 切割木块在将一块木块切成若干小木块后,你可以根据 prices 卖木

2024-03-15 18:26:14 936

原创 LeetCode 2789.合并后数组中的最大元素:贪心(倒序)

LeetCode 2789.合并后数组中的最大元素:贪心(倒序)给你一个下标从 0 开始、由正整数组成的数组 nums 。你可以在数组上执行下述操作 任意 次:选中一个同时满足 0

2024-03-14 09:15:49 937

原创 LeetCode 2864.最大二进制奇数:贪心(C++/Python的两行构造)

LeetCode 2864.最大二进制奇数:贪心(C++/Python的两行构造)给你一个 二进制 字符串 s ,其中至少包含一个 '1' 。你必须按某种方式 重新排列 字符串中的位,使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。注意 返回的结果字符串 可以 含前导零。

2024-03-13 08:48:44 861

原创 LeetCode 1261. 在受污染的二叉树中查找元素:深搜+哈希表

LeetCode 1261. 在受污染的二叉树中查找元素:深搜+哈希表给出一个满足下述规则的二叉树:root.val == 0如果 treeNode.val == x 且 treeNode.left != null,那么 treeNode.left.val == 2 * x + 1如果 treeNode.val == x 且 treeNode.right != null,那么 treeNode.right.val == 2 * x + 2现在这个二叉树受到「污染」,所有的 treeNode.va

2024-03-12 09:42:35 822

原创 LeetCode 2129.将标题首字母大写:模拟(一个变量记录是否该大写)

LeetCode 2129.将标题首字母大写:模拟(一个变量记录是否该大写)给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 :如果单词的长度为 1 或者 2 ,所有字母变成小写。否则,将单词首字母大写,剩余字母变成小写。请你返回 大写后 的 title 。

2024-03-11 09:33:51 906

原创 LeetCode 0299.猜数字游戏:计数

LeetCode 0299.猜数字游戏:计数你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示:猜测数字中有多少位属于数字和确切位置都猜对了(称为 "Bulls",公牛),有多少位属于数字猜对了但是位置不对(称为 "Cows",奶牛)。也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。给你一个秘密数字 secret 和朋友猜测的数字 guess ,请你返回

2024-03-10 12:07:14 859

原创 LeetCode 2386.找出数组的第 K 大和:逆向思维(小根堆)

LeetCode 2386.找出数组的第 K 大和:逆向思维(小根堆)给你一个整数数组 nums 和一个 正 整数 k 。你可以选择数组的任一 子序列 并且对其全部元素求和。数组的 第 k 大和 定义为:可以获得的第 k 个 最大 子序列和(子序列和允许出现重复)返回数组的 第 k 大和 。子序列是一个可以由其他数组删除某些或不删除元素排生而来的数组,且派生过程不改变剩余元素的顺序。注意:空子序列的和视作 0 。

2024-03-09 18:52:36 1068

原创 LeetCode 2834.找出美丽数组的最小和:数学(等差数列求和)——O(1)的做法

LeetCode 2834.找出美丽数组的最小和:数学(等差数列求和)——O(1)的做法给你两个正整数:n 和 target 。如果数组 nums 满足下述条件,则称其为 美丽数组 。nums.length == n.nums 由两两互不相同的正整数组成。在范围 [0, n-1] 内,不存在 两个 不同 下标 i 和 j ,使得 nums[i] + nums[j] == target 。返回符合条件的美丽数组所可能具备的 最小 和,并对结果进行取模 109 + 7。

2024-03-08 16:31:09 977

空空如也

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

TA关注的人

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