
刷题
文章平均质量分 51
AlwaysDayOne
这个作者很懒,什么都没留下…
展开
-
简洁思路推理 KMP 算法——子字符串匹配
找出字符串中第一个匹配项的下标。简洁思路推理KMP算法原创 2024-01-27 21:28:27 · 1428 阅读 · 1 评论 -
ACWING 高精度-加减乘除 791 - 794
读取字符串的高精度数字,然后用int数组存上,通过最基础的每位加减乘除和进位等操作完成。下方给出了所有的操作函数,注意函数的所有输入均为vector 的数组,并且数组存储是从数的低位开始存1000 = [0,0,0,1],和正常存储相反,这是为了便于操作。原创 2023-05-12 17:57:53 · 810 阅读 · 1 评论 -
ACWING/1824. 钻石收藏家
还可以用空间换时间的方案,时间O(n),具体解法如下注释,较简单。输出贝茜可以在展示柜中展示的钻石最大数量。此方案的复杂度为排序的O(nlogn)决定。原创 2023-02-19 22:58:56 · 401 阅读 · 0 评论 -
ACWING\1912. 里程表
110∼133 之间的所有数字中,有趣数字为:110,112,113,114,115,116,117,118,119,121,122,131,133。数据范围是最大16位数,必须long long才能hold住。共一行,包含两个整数 X 和 Y。输出奶牛们在旅途中发出叫声的次数。原创 2023-02-16 20:10:49 · 132 阅读 · 0 评论 -
ACWING\1351. 密码锁
容斥原理原创 2023-02-06 21:02:23 · 191 阅读 · 0 评论 -
Las Vegas 与回溯组合法解八皇后问题
该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。为了衡量不同stepVegas从哪一行开始进行回溯效果最好,引入一个遍历节点消耗的概念:即放置一次皇后作为一次搜索的节点。如此是在前stepVegas行的皇后是概率的选取皇后位置,而第stepVegas行后是有回溯法确定的选择。遍历n行,每一行尝试随机放置一个可以放置的位置,如可放置皇后的位置有{1,3,5,7},从其中随机挑一个。原创 2022-11-29 11:30:00 · 870 阅读 · 0 评论 -
leetcode 856. 括号的分数
给定一个平衡括号字符串 S,按下述规则计算该字符串的分数:() 得 1 分。AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。(A) 得 2 * A 分,其中 A 是平衡括号字符串。原创 2022-10-09 17:48:27 · 265 阅读 · 0 评论 -
LeetCode777. 在LR字符串中交换相邻字符
在一个由 ‘L’ , ‘R’ 和 ‘X’ 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作。一次移动操作指用一个"LX"替换一个"XL",或者用一个"XR"替换一个"RX"。现给定起始字符串start和结束字符串end,请编写代码,当且仅当存在一系列移动操作使得start可以转换成end时, 返回True。原创 2022-10-04 15:17:45 · 326 阅读 · 0 评论 -
LeetCode面试题 17.09. 第 k 个数
有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。原创 2022-09-28 12:06:40 · 183 阅读 · 0 评论 -
面试题 17.19. 消失的两个数字(妙用异或)
给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗?以任意顺序返回这两个数字均可。原创 2022-09-27 12:35:30 · 266 阅读 · 0 评论 -
LeetCode146. LRU 缓存实现(HashMap+双向链表)【重点数据结构】
在C语言实验的很多代码中都会使用到LRU最近最少使用 算法,如在操作系统中对空闲区域的调度,同时算法一般还伴随着对操作读写删操作O(1)时间复杂度要求,以提高系统相应速度。原创 2022-09-26 17:35:46 · 511 阅读 · 0 评论 -
leetCode1652. 拆炸弹
你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k。为了获得正确的密码,你需要替换掉每一个数字。所有数字会 同时 被替换。如果 k > 0 ,将第 i 个数字用 接下来 k 个数字之和替换。如果 k < 0 ,将第 i 个数字用 之前 k 个数字之和替换。如果 k == 0 ,将第 i 个数字用 0 替换。原创 2022-09-24 11:20:58 · 154 阅读 · 0 评论 -
669. 修剪二叉搜索树(经典剪枝)
给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在 唯一的答案。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。原创 2022-09-22 10:42:29 · 108 阅读 · 0 评论 -
698. 划分为k个相等的子集
给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。原创 2022-09-21 17:36:15 · 311 阅读 · 0 评论 -
827. 最大人工岛
给你一个大小为 n x n 二进制矩阵 grid。最多 只能将一格 0 变成 1。返回执行此操作后,grid 中最大的岛屿面积是多少?岛屿 由一组上、下、左、右四个方向相连的 1 形成。原创 2022-09-18 10:15:51 · 163 阅读 · 0 评论 -
687. 最长同值路径
给定一个二叉树的 root ,返回 最长的路径的长度 ,这个路径中的 每个节点具有相同值。这条路径可以经过也可以不经过根节点。两个节点之间的路径长度 由它们之间的边数表示。原创 2022-09-02 20:11:32 · 142 阅读 · 0 评论 -
946. 验证栈序列
给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false。原创 2022-08-31 17:49:36 · 86 阅读 · 0 评论 -
172. 阶乘后的零
中质因子 5 的个数等于 [1,n] 的每个数的质因子 5 的个数之和,我们可以通过遍历 [1,n]的所有 5 的倍数求出。尾零的数量即为因子 10 的个数,而 10=2×5,因此转换成求 n!= n * (n - 1) * (n - 2) * …n分别贡献i个因子5.如5、10、15都只会贡献1个因子,而25会贡献5*5两个因子。由于质因子 5 的个数不会大于质因子 2 的个数,我们可以仅考虑质因子 5 的个数。继续优化发现,[1,n]的所有 5 的倍数的数由5、5。给定一个整数 n ,返回 n!...原创 2022-08-28 21:57:27 · 119 阅读 · 0 评论 -
ACWING/1977. 信息中继
因为每个牛只能单项传播,故能够成一个或多个图,若一个图中存在循环,则此图中所有牛都会陷入循环,否则一定为一棵树。利用并查集做(并查集的同一集合特性,子节点更新都指向根节点降低查找复杂度)因此可以利用并查集的特性解决。...原创 2022-08-26 11:00:32 · 114 阅读 · 0 评论 -
655. 输出二叉树
【代码】655. 输出二叉树。原创 2022-08-22 21:54:00 · 144 阅读 · 0 评论 -
1224. 最大相等频率
给你一个正整数数组 nums,请你帮忙从该数组中找出能满足下面要求的 最长 前缀,并返回该前缀的长度:从前缀中 恰好删除一个 元素后,剩下每个数字的出现次数都相同。如果删除这个元素后没有剩余元素存在,仍可认为每个数字都具有相同的出现次数(也就是 0 次)。...原创 2022-08-18 21:11:54 · 105 阅读 · 0 评论 -
1302. 层数最深叶子节点的和
给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和。原创 2022-08-17 13:13:39 · 183 阅读 · 0 评论 -
ACWING/4262. 空调
拟求得arr数组全0,则其差分数组也一定全0 :原因为,差分数组的实质为相邻两个数的差值,由于第一个数实际是和0做差分,则可以理解为。题意可以转化为:将两个温度数组求差得到arr数组,求对区间加一或者减一的最少操作次数得到全0的数组。按照如此的操作方案,使得差分数组归0的操作次数为max(正数和,|负数和|)差分:对于数列 a,其第 i 个元素和第 i - 1 个元素的差称为。...原创 2022-08-11 15:38:47 · 366 阅读 · 1 评论 -
ACWING/3746. 牛的学术圈 II
若发现两个名字是字典序排列,则后者等于前者的分数。积分值,资历越深,分数越高。使用map来映射积分。原创 2022-08-09 16:57:43 · 225 阅读 · 0 评论 -
1413. 逐步求和得到正数的最小值
给你一个整数数组 nums。你可以选定任意的 正数 startValue 作为初始值。你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。请你在确保累加和始终大于等于 1 的前提下,选出一个最小的 正数 作为 startValue。...原创 2022-08-09 15:30:48 · 170 阅读 · 0 评论 -
761. 特殊的二进制序列
给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作 为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后一个字符恰好为第二个子串的第一个字符的前一个字符。)在任意次数的操作之后,交换后的字符串按照字典序排列的最大的结果是什么?...原创 2022-08-09 15:16:49 · 156 阅读 · 0 评论 -
ACWING/3371. 舒适的奶牛
代码】ACWING/3371. 舒适的奶牛。原创 2022-08-08 16:06:56 · 239 阅读 · 0 评论 -
1403. 非递增顺序的最小子序列
解释:子序列 [7,7] 的和为 14 ,不严格大于剩下的其他元素之和(14 = 4 + 4 + 6)。与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中的连续性,也就是说,它可以通过从数组中分离一些(也可能不分离)元素得到。解释:子序列 [10,9] 和 [10,8] 是最小的、满足元素之和大于其他各元素之和的子序列。给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。输入:nums = [4,4,7,6,7]输出:[7,7,6]..原创 2022-08-04 15:27:35 · 100 阅读 · 0 评论 -
Acwing/3359. 更多奇怪的照片
代码】Acwing/3359. 更多奇怪的照片。原创 2022-08-04 15:05:09 · 144 阅读 · 0 评论 -
ACWING/2004. 错字
题目重点:条件1:对于字符串的任意前缀,所包含的 ( 的数目都不少于 ) 的数目。条件2:输入的字符串满足:最多只修改一个字符,即可变为平衡括号字符串。因此本题限制在了只需要变化一个括号就一定能序列匹配!结题思路:分类:1.左右括号数R L相同;2.右括号需要转化为左括号:R=L+2;左括号需要转化为有括号:L=R+2类型①:输出0直接类型②:记录每个位置的从左到右 左右括号分别的前缀和,由条件1可得:从左向右搜索第一个左括号比右括号少的右括号位置, 则位置及其之前的任意一个右括号改变为左括号才能满足条件1原创 2022-06-21 15:02:26 · 139 阅读 · 2 评论 -
ACWING/2004. 错字
题目重点:条件1:对于字符串的任意前缀,所包含的 ( 的数目都不少于 ) 的数目。条件2:输入的字符串满足:最多只修改一个字符,即可变为平衡括号字符串。因此本题限制在了只需要变化一个括号就一定能序列匹配!结题思路:分类:1.左右括号数R L相同;2.右括号需要转化为左括号:R=L+2;左括号需要转化为有括号:L=R+2类型①:输出0直接类型②:记录每个位置的从左到右 左右括号分别的前缀和,由条件1可得:从左向右搜索第一个左括号比右括号少的右括号位置, 则位置及其之前的任意一个右括号改变为左括号才能满足条件1原创 2023-02-18 19:47:49 · 159 阅读 · 0 评论 -
ACWING2013. 三条线
输入样例:输出样例:样例解释y=0,x=1,y=4 可满足将所有奶牛位置覆盖。首先选择一个点,他有两种选择,用x或者y方向的线,选择方向后,将此方向的所有点给删除然后将未删除的点中随机选一个,再区分x或y方向,重复第2步然后重复第三步前四步完成后,删除的点就分别有三条线穿过了,此时判断是否还有剩下的即可得出结果若还有剩下点说明此方案不成立,则回溯旋转不同方向如此一共有8种选择线的方向组合,如下图代码思路:用dfs递归三层来实现用一个Struct来装坐标和记录点是否删除的状态用数组来记录所有点为了防止每次原创 2022-06-19 20:48:38 · 139 阅读 · 0 评论 -
ACWING 2023. 连接奶牛
数据范围输入样例:输出样例:样例解释共有两条不同路线 1−2−4−3 和 3−4−2−1。题目关键点:- 所有奶牛的位置互不相同,且都不在原点。- 每头奶牛的位置处恰好转向一次- 在不改变方向的情况下通过任意奶牛的位置任意次数- 只沿平行于坐标轴的方向行走,即只能向北,向南,向东或向西行走则是求0,0 -> 点集的全部排列 -> 0,0通过dfs 搜索n层,每层代表n个位置上的点选择注意:此处n的大小只有10以内,全排复杂度可以接受...原创 2022-06-06 15:32:41 · 247 阅读 · 0 评论 -
ACWING\2032. 过度种植 (容斥原理与扫描线)
输入样例:20 5 4 12 4 6 2输出样例:20题解题目解读:注意题目中给出 “轴向对齐”(即具有垂直和水平边)的矩形 的设定,若把每个给出的矩形区域面积计算,则交集出x、y方向矩形为重复计算的面积,这里即计算多个矩形重合后的尽占地面积。方法一:扫描线 区间求交如下图,以x方向将每个出现x坐标平行于y轴画一条线,若有n个矩形,则出现2n条线,将整个草地划分为2n-1个区域。每个区域内若存在种草的矩形,则一定是x方向的长度相同,只在y方向上考虑是否出现区间交错。首先处理x方.原创 2022-05-27 15:08:00 · 312 阅读 · 0 评论 -
ACWING\1927. 自动补全
ACWING\1927. 自动补全数据范围1≤W≤300001≤N≤100001≤Ki≤W输入样例:10 3dabbaabdaaaaaaaaababcacdadba4 a2 da4 da输出样例:31-1样例解释a 的自动补全为 aa,aaa,aab,ab,abc,ac,第四个为 ab,在词典中排第 33 个。da 的自动补全为 daa,dab,dadba,第二个为 dab,在词典中排第 11 个。da 不存在第四个自动补全。题解:排序 二分原创 2022-05-25 14:30:38 · 188 阅读 · 0 评论 -
ACWING/4441. 谎牛计数
输入样例1:2G 3L 5输出样例1:0样例1解释有可能没有奶牛在撒谎。输入样例2:2G 3L 2输出样例2:1题解枚举将每一个牛的信息都存入一个结构体,对结构体的位置信息做排序位置信息从小到大遍历求解,在每个位置计算全局的说谎信息数量,与结果作比较去最小值设置变量 suml 表示当前位置加前面的所有L信息数量设置变量 sumg 表示当前位置加前面所有的G信息数量设置变量 n_l n_g 分别表示两种个信息总数枚举方案如下:..原创 2022-05-19 17:28:22 · 391 阅读 · 0 评论 -
ACWING/1986. 镜子
输入样例:5 6 23 0 /0 2 /1 2 /3 2 \1 3 \输出样例:4样例解释农场的平面图如下所示,其中H 表示约翰的房子,B 表示牛棚:3 .\.....2 //.\..B1 .......0 H../... 0123456通过改变 (3,2)处的围栏朝向,就可以使约翰看到点 (a,b),如下所示:3 .\.....2 //./--B1 ...|...0 H--/... 01234563 .\.....2 //./--B1 ....原创 2022-05-02 13:35:35 · 318 阅读 · 0 评论 -
ACWING/1995. 见面与问候
数据范围1≤B,E≤50000输入样例:4 53 L5 R1 L2 R4 R1 L3 L4 R2 L输出样例:3样例解释贝茜和艾希在时间 7,9,13 碰面打招呼。题解模拟方法解决首先将输入固定化到两个index数组,index数组存储每一秒牛所在的位置,index记录长度为最长运动时间那头牛决定,0s的时候位置在0(注意这是因为他们的速度都是1单位/s)然后判断两头牛在每个时间节点所处的位置是否相同此外注意特例初始位置两头牛的相遇不算注意两头相遇且并排走.原创 2022-04-27 13:28:21 · 141 阅读 · 0 评论 -
ACWING\3767. 最小的值
输入样例1:51 1 1 0 00 1 1 1 1输出样例1:3输入样例2:30 0 00 0 0输出样例2:-1输入样例3:41 1 1 11 1 1 1输出样例3:-1输入样例4:91 0 0 0 0 0 0 0 10 1 1 0 1 1 1 1 0输出样例4:4贪心从题目可以推导出,a[i]=0,b[i]=0与a[i]=1,b[i]=1的两种一定对∑i=1,n a[i]×p[i] > ∑i=1,n b[i]×p[i]是没有贡.原创 2022-04-14 19:57:16 · 207 阅读 · 0 评论 -
ACWING\3764. 三元数异或
输入样例:4522222521211129220222021输出样例:1111111111110001021111110111011110111010题解(贪心)两个数的最高位一定都是1.始终使得第一个数a为max.那么从高位遍历到最低位做计算,每次得到异或复原的两个数如果可以相等就相等,使得a可以尽量小若一定复原的两个数有一个大,就将大的给a。注意:关键点是此时注定了a一定大于b因此接下来遍历的所有异或复原都使得给a的数最小..原创 2022-04-13 20:00:37 · 225 阅读 · 0 评论