自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指Offer题集(力扣)

力扣题单:https://leetcode.cn/problemset/all/?listId=lcof&page=1

2023-05-07 22:52:08 7745

原创 其他常用算法与数据结构总结(板子)

其他常用算法与数据结构总结

2023-04-19 12:41:03 550

原创 经典基础算法总结(排序、二分、KMP、树、图)

经典算法与题目对应列表:https://leetcode.cn/circle/discuss/bawPH2/

2023-03-18 15:39:30 931 1

原创 LC-1976. 到达目的地的方案数(Dijkstra + DP)

中等你在一个城市里,城市由n个路口组成,路口编号为0到n - 1,某些路口之间有道路。输入保证你可以从任意路口出发到达其他任意路口,且任意两个路口之间最多有一条路。给你一个整数n和二维整数数组roads,其中表示在路口ui和vi之间有一条需要花费timei时间才能通过的道路。你想知道花费从路口0出发到达路口n - 1的方案数。请返回花费到达目的地的。由于答案可能很大,将结果对109 + 7后返回。

2024-03-05 09:47:43 540

原创 周赛382(模拟、枚举、脑经急转弯、位运算(试填法))

Alice 和 Bob 在一个长满鲜花的环形草地玩一个回合制游戏。环形的草地上有一些鲜花,Alice 到 Bob 之间顺时针有。,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。等修饰键不计入按键变更,也就是说,如果用户先输入字母。你需要从数组中选出一个满足下述条件的子集。返回满足这些条件的子集中,元素数量的。,你的任务是求出满足以下条件的所有。返回用户输入过程中按键变更的次数。请你返回满足题目描述的数对。表示按键变更一次,而。一次操作中,你可以选择。

2024-01-30 17:12:59 1114

原创 双周赛122(模拟、冒泡排序、分组循环、脑经急转弯)

那么你可以将这两个元素交换。请你返回一个整数,它表示进行任意次操作以后。如果你可以使数组变有序,请你返回。个子数组中第一个元素的下标距离。你的任务是通过进行以下操作。元素在二进制下数位为。请你返回这些子数组的。请你返回这些子数组的。

2024-01-30 17:11:50 733

原创 周赛381(模拟、BFS、贪心)

表示所有满足要求的房屋对的数量,即从一个房屋到另一个房屋需要经过的。表示所有满足要求的房屋对的数量,即从一个房屋到另一个房屋需要经过的。小写英文字母集合相映射,可以通过按压按键来组成单词。小写英文字母集合相映射,可以通过按压按键来组成单词。下面给出了一种电话键盘上字母到按键的映射作为示例。下面给出了一种电话键盘上字母到按键的映射作为示例。,都存在一条街道连接编号为。),你需要找出所有满足要求的。,都存在一条街道连接编号为。),你需要找出所有满足要求的。,我们需要按一次键来输入。,我们需要按一次键来输入。

2024-01-30 17:11:15 157

原创 周赛380(哈希+计数、KMP+二分+枚举、二分+数位DP)

先二分找 >= x 的第一个元素下标,然后该元素下标-1就是,

2024-01-15 20:57:04 1023 1

原创 周赛379(排序、分类讨论、记忆化搜索(动态规划))

在最优选择情形下改变至多一处下标对应字符后,用整数表示并返回操作结束时得到的最大分割数量。如果存在多个对角线长度相同的矩形,返回面积最。假定你只能移动白色棋子,返回捕获黑皇后所需的。下标的对应字符更改为另一个小写英文字母。你需要执行以下分割操作,直到字符串。中剩下的元素插入到集合。,它们的长度都是偶数。

2024-01-14 08:34:17 980

原创 双周赛121(模拟、位运算、BFS、数位DP上下界)

你也可以将一个数的前导 0 翻转。,那么我们称这个前缀是一个。结束的子字符串,那么我们称。,请你返回达成这一目标的。你可以对数组执行以下操作。元素的按位异或和得到。翻转第四个数位,得到。

2024-01-14 08:07:01 962

原创 周赛378(中心扩散法、分组循环)

如果可以选择两个或更多元素,其按位或运算结果存在尾随零,返回。的长度,如果不存在出现至少三次的特殊子字符串,则返回。的长度,如果不存在出现至少三次的特殊子字符串,则返回。如果一个字符串仅由单一字符组成,那么它被称为。如果一个字符串仅由单一字符组成,那么它被称为。对于每个查询,你的任务是判断执行操作后能否让。给你一个仅由小写英文字母组成的字符串。给你一个仅由小写英文字母组成的字符串。不是特殊字符串,而字符串。不是特殊字符串,而字符串。,不存在尾随零,而数字。是字符串中的一个连续。是字符串中的一个连续。

2024-01-03 22:32:08 822

原创 周赛377

Alice 和 Bob 决定玩一个游戏,游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。,田地内部有一些水平栅栏和垂直栅栏,分别由数组。田地的面积,或者如果无法形成正方形田地则返回。**注意:**田地外围两个水平栅栏(坐标。由于答案可能很大,所以请返回结果对。你就可以选择字符串中的一个字符。如果不可能完成转换,则返回。如果不可能完成转换,则返回。的操作,但是任两次操作必须满足。矩形田地,其两个对角分别是。,你就可以选择字符串中的。,同时还有一个空数组。)所能形成的最大面积的。

2023-12-25 20:52:47 1046

原创 ACM模式Java输入输出模板

输入输出练习网站:https://kamacoder.com/

2023-12-25 16:02:13 1736

原创 14.中位数贪心

aa假定所有的nums[i]均位于数轴上的nums的位置,要求我们在数轴上找出一个点t,使得所有nums[i]到t的距离之和最小。tnums[0]nums[n-1],否则我们「至少」能够将目标点调整为 最小的nums[0]或 最大的nums[n-1]来得到更小的距离总和。考虑变为a[0]和a[n-1]的中间位置xa[0]移动b步,a[n-1]移动c步,总共b+c步,当变为x+1时,a[0]移动b+1步,a[n-1]移动c-1步,总共b+c步。因此变为a[0]和a[n-1]中间节点时,总的步数是相同的。

2023-12-21 14:33:52 1087

原创 15.动态规划:数据结构优化DP

数据结构优化DP有前缀和、滑动窗口、树状数组、线段树、单调栈、单调队列

2023-12-20 15:23:30 1142

原创 周赛376(哈希表+模拟、排序+贪心、中位数贪心+预处理回文数+二分、中位数贪心+前缀和)

包含所有的子数组。如果不可能满足条件,就返回一个空数组。如果有多个答案,返回。众数指的是数组中出现次数最多的数。一个元素的频率指的是数组中这个元素的出现次数。如果一个正整数正着读和反着读都相同,那么我们称这个数是。请你返回一个整数,表示执行任意次特殊操作后使。如果一个数组中的所有元素都等于一个整数。最终数组的频率分数定义为数组中众数的。返回一个下标从 0 开始、长度为。将这个数组划分为一个或多个长度为。每一次特殊操作中,你需要。,那么我们称这个数组是一个。请你返回你可以得到的。任务是找出重复的数字。

2023-12-20 09:27:03 840

原创 14.单调队列(滑动窗口最大值)、单调队列优化DP【灵神基础精讲】

来源0x3f:https://space.bilibili.com/206214

2023-12-19 13:10:06 968

原创 13.二进制枚举练习题

请你从原请求列表中选出若干个请求,使得它们是一个可行的请求列表,并返回所有可行列表中最大请求数目。个分部,它们之间有的有道路连接。一开始,所有分部通过这些道路两两之间互相可以到达。请你返回关闭分部的可行方案数目,满足每个方案里剩余分部之间的最远距离不超过。由于现在是换楼的季节,部分员工想要换一栋楼居住。),同时保证剩下的分部之间两两互相可以到达且最远距离不超过。,所以从请求列表中选出的若干个请求是可行的需要满足。,如果该请求列表可行,应该要有两个员工搬入楼。,关闭一个分部后,与之相连的所有道路不可通行。

2023-12-17 21:01:14 115

原创 LC-2132. 用邮票贴满网格图(二维差分)

困难给你一个m x n的二进制矩阵grid,每个格子要么为0(空)要么为1(被占据)。给你邮票的尺寸为。我们想将邮票贴进二进制矩阵中,且满足以下和如果在满足上述要求的前提下,可以放入邮票,请返回true,否则返回false。01。

2023-12-14 12:15:53 142

原创 周赛375(差分思想、快速幂、双指针)

子数组,如果不存在包含了相同数字的两个子数组,则认为是一种。次的子数组,并返回满足这一条件的子数组的数目。返回一个整数,表示按顺序执行测试操作后。子数组是数组中的一个连续元素序列。你的任务是按照顺序测试每个设备。由于答案可能很大,请返回答案对。如果满足以下公式,则下标。请你统计有多少满足 「将数组分割成一个或多个。个设备的电池百分比。

2023-12-11 17:28:42 156

原创 双周赛119(哈希表、贪心、双指针+哈希表、二进制枚举子集+Floyd算法)

个分部,它们之间有的有道路连接。一开始,所有分部通过这些道路两两之间互相可以到达。请你返回关闭分部的可行方案数目,满足每个方案里剩余分部之间的最远距离不超过。公司意识到在分部之间旅行花费了太多时间,所以它们决定关闭一些分部(),同时保证剩下的分部之间两两互相可以到达且最远距离不超过。,关闭一个分部后,与之相连的所有道路不可通行。指的是一个数组中一段连续非空的元素序列。在字母表中是相邻的,那么我们称它们是。如果一个数组中所有元素的频率都。,两个分部之间可能会有多条道路。指的是它在数组中的出现次数。

2023-12-11 17:27:20 144

原创 周赛374(枚举、思维题、分组循环+枚举、组合数学)

一开始没有感冒的小朋友最后得感冒的顺序序列。请你返回所有感冒序列的数目。是被传染的小朋友存在且还没有得感冒。包含一开始得了感冒的小朋友的位置。数组,删除过程不会改变剩余元素的相对位置。经过有限的秒数后,队列中所有小朋友都会感冒。,表示可用的硬币的面值,以及一个整数。的小朋友得了感冒,他会传染给下标为。包含一开始就得了感冒的小朋友的下标。位小朋友站成一排,按顺序编号为。指的是一个字符串中一段连续。是通过删除原始数组的一些(还没感冒的小朋友会被传染。以数组形式返回给定数组中。返回需要添加到数组中的。

2023-12-09 09:57:24 144

原创 LC-2008. 出租车的最大盈利(记忆化搜索==>动态规划)

中等你驾驶出租车行驶在一条有n个地点的路上。这n个地点从近到远编号为1到n,你想要从1开到n,通过接乘客订单盈利。你只能沿着编号递增的方向前进,不能改变方向。乘客信息用一个下标从开始的二维数组rides表示,其中表示第i位乘客需要从地点starti前往endi,愿意支付tipi元的小费。你选择接单的乘客i,你可以元。你同时只能接一个订单。给你n和rides,请你返回在最优接单方案下,你能盈利多少元。**注意:**你可以在一个地点放下一位乘客,并在同一个地点接上另一位乘客。

2023-12-08 11:14:35 116

原创 LC-1466. 重新规划路线(DFS、BFS)

中等n座城市,从0到n-1编号,其间共有n-1条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以改变交通拥堵的状况。路线用表示,其中表示从城市a到b的一条有向路线。今年,城市 0 将会举办一场大型比赛,很多游客都想前往城市 0。请你帮助重新规划路线方向,使每个城市都可以访问城市 0。返回需要变更方向的最小路线数。题目数据每个城市在重新规划路线方向后都能到达城市 0。

2023-12-07 09:23:29 77

原创 LC-1423. 可获得的最大点数(子数组和、枚举)

中等几张卡牌,每张卡牌都有一个对应的点数。点数由整数数组cardPoints给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿k张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组cardPoints和整数k,请你返回可以获得的最大点数。

2023-12-03 10:15:12 92

原创 LC.1094. 拼车(差分)

中等车上最初有capacity个空座位。车向一个方向行驶(也就是说,给定整数capacity和一个数组trips表示第i次旅行有乘客,接他们和放他们的位置分别是fromi和toi。这些位置是从汽车的初始位置向东的公里数。当且仅当你可以在所有给定的行程中接送所有乘客时,返回true,否则请返回false。

2023-12-02 08:07:40 101

原创 13.单调栈(接雨水、柱状图最大矩形)【灵神基础精讲】

来源0x3f:https://space.bilibili.com/206214

2023-11-30 14:14:30 104

原创 周赛373(模拟、前缀和、排序+分组循环、质因数分解+前缀和+哈希表)

分别表示字符串中元音字母和辅音字母的数量。分别表示字符串中元音字母和辅音字母的数量。如果初始矩阵和最终矩阵完全相同,则返回。中的对应字符的字典序更小,则认为数组。如果某个字符串满足以下条件,则称其为。子字符串是字符串中的一个连续字符序列。在一次操作中,你可以选择任意两个下标。如果某个字符串满足以下条件,则称其为。子字符串是字符串中的一个连续字符序列。处是两个数组第一个不同的位置,且。为除了元音字母之外的所有字母。为除了元音字母之外的所有字母。返回执行任意次操作后能得到的。第一个不同的位置上,数组。

2023-11-27 16:23:36 102

原创 双周赛118(模拟、分组循环、记忆化搜索==>动态规划、单调队列优化DP)

你在一个水果超市里,货架上摆满了玲琅满目的奇珍异果。你可以执行任意次操作。每次操作中,你需要选择一个。,表示下标在数组中对应的单词包含字符。空洞的面积,正方形空洞的意思是正方形。个金币去购买它以便能免费获得接下来的。请你返回执行任意次操作以后,可以得到的。,并将这个子数组用它所包含元素的。替换掉子数组,然后数组会变为。如果满足以下条件之一,你可以。请你返回获得所有水果所需要的。组成,一开始所有区域均为。个水果需要花费的金币数目。指的是一个数组中一段连续。请你返回移除一些线段后(同时给你两个整数数组。

2023-11-26 21:21:50 126

原创 LC-828. 统计子串中的唯一字符(贡献法 思考变化量)

困难我们定义了一个函数来统计字符串s中的唯一字符,并返回唯一字符的个数。,则其中"L""T""C""O""D"都是唯一字符,因为它们只出现一次,所以。本题将会给你一个字符串s,我们需要返回的总和,其中t是s的子字符串。输入用例保证返回值为 32 位整数。注意,某些子字符串可能是重复的,但你统计时也必须算上这些重复的子字符串(也就是说,你必须统计s的所有子字符串中的唯一字符)。

2023-11-26 14:25:30 111

原创 12.位运算的性质(异或的性质)

与;或;异或。

2023-11-24 13:38:39 102

原创 11.前缀和、异或前缀和、差分数组练习题

前缀和可以用来求中等给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。

2023-11-23 17:13:56 142

原创 10.分组循环练习题

来自0x3f:分组循环适用场景,按照题目要求,数组会被分割成若干组,且每一组的判断/处理逻辑是一样的。

2023-11-23 15:14:07 142

原创 周赛372(正难则反、枚举+贪心、异或位运算、离线+单调栈)

如果存在某种方法能够使这三个字符串相等,请返回使它们相等所需的。返回「将所有黑色球都移到右侧,所有白色球都移到左侧所需的。个查询中,Alice 和 Bob 可以相遇的。你可以根据需要对这三个字符串执行以下操作。在每一步中,你可以选择两个相邻的球并交换它们。在每次操作中,你可以选择其中一个长度至少为。,Alice 和 Bob 不能相遇,令。个球,每个球的颜色不是黑色,就是白色。个查询中,Alice 在建筑。由于答案可能会很大,返回它对。,那么这个人可以移动到建筑。分别代表黑色和白色的球。

2023-11-21 12:31:54 140

原创 LC-2216. 美化数组的最少删除数(贪心(脑经急转弯))

中等给你一个下标从开始的整数数组nums,如果满足下述条件,则认为数组nums是一个i % 2 == 0i注意,空数组同样认为是美丽数组。你可以从nums中删除任意数量的元素。当你删除一个元素时,被删除元素右侧的所有元素将会向左移动一个单位以填补空缺,而左侧的元素将会保持。返回使nums变为美丽数组所需删除的元素数目*。

2023-11-21 10:14:19 105

原创 双周赛117(容斥原理、记忆化搜索==>动态规划、分组背包方案数、脑经急转弯)

个商店的物品已经按照价值非递增排好序了,也就是说对于所有。每一天,你可以在一个商店里购买一件物品。,所有物品都视为不同的物品。比方说如果你已经从商店。,你还可以在别的商店里购买其他商店的物品。位小朋友,确保没有任何小朋友得到超过。位小朋友,确保没有任何小朋友得到超过。是一个字符串中一段连续的字符序列。颗糖果,请你返回满足此条件下的。颗糖果,请你返回满足此条件下的。的字符重新排列后,新字符串包含。由于答案可能很大,将答案对。只包含小写英文字母,

2023-11-18 09:41:54 131

原创 周赛371(模拟、哈希+排序+枚举、异或性质)

中选出两个整数,且满足:这两个整数可以形成一个强数对,并且它们的按位异或(中选出两个整数,且满足:这两个整数可以形成一个强数对,并且它们的按位异或(操作次数,如果无法同时满足两个条件,则返回。,你可以选择同一个整数两次来形成一个强数对。,你可以选择同一个整数两次来形成一个强数对。在每次操作中,你可以选择一个在范围。以列表形式,按任意顺序,返回所有。你的任务是找到满足以下条件所需的。)值是在该数组所有强数对中的。)值是在该数组所有强数对中的。,这两个数组的长度都是。所有可能的强数对中的。

2023-11-17 22:39:05 192

原创 双周赛116(模拟、贪心、记忆化搜索==> 动态规划、线段树)

如果可以将一个字符串分割成一个或者更多满足以下条件的子字符串,那么我们称这个字符串是。指的是从原数组中删除一些或者不删除任何元素后,剩余元素保持原来的顺序构成的数组。子数组指的是一个数组里面一段连续。子数组指的是一个数组里面一段连续。由于答案可能会很大,请你将它对。由于答案可能会很大,请你将它对。给你一个长度为偶数下标从。

2023-11-16 11:30:58 122

原创 周赛370(模拟、树形DP(正难则反)、树状数组优化DP)

如果从根节点出发,到任意叶子节点经过的路径上的节点值之和都不等于 0 ,那么我们称这棵树是。你可以对这棵树执行任意次操作,但要求执行完所有操作以后树是。一个冠军,则返回将会成为冠军的队伍。,如果这个子序列满足以下条件,我们说它是。在这场比赛中,如果不存在某支强于。返回这场比赛中将会成为冠军的队伍。在这场比赛中,如果不存在某支强于。)后,剩余元素保持相对顺序得到的。指的是从原数组中删除一些元素(个节点的无向树,节点编号为。表示这个有向无环图,其中。,请你返回你可以获得的。请你返回一个整数,表示。

2023-11-15 22:33:03 130

原创 双周赛116(模拟、贪心、记忆化搜索==> 动态规划)

如果可以将一个字符串分割成一个或者更多满足以下条件的子字符串,那么我们称这个字符串是。指的是从原数组中删除一些或者不删除任何元素后,剩余元素保持原来的顺序构成的数组。子数组指的是一个数组里面一段连续。子数组指的是一个数组里面一段连续。由于答案可能会很大,请你将它对。由于答案可能会很大,请你将它对。给你一个长度为偶数下标从。

2023-11-14 20:43:17 109

空空如也

空空如也

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

TA关注的人

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