自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 acwing 1230. K倍区间

求区间[l,r]的和是k的倍数的个数。我们规定s[i]表示第1个元素到第i个元素的和。那么s[r] - s[l-1]就是区间[l,r]的和。区间[l,r]的和是k的倍数即(s[r] - s[l-1])%k == 0 即s[r]%k == s[l-1]%k。样例中前缀和为 1 3 6 10 15,%2之后为1 1 0 0 1,两两比较余数后,只能找到四个区间。我们发现,我们忽略了两个单序列,因为单个序列取余也可以构成k倍区间。通过判断前缀和的余数是否相同,来得出最后k倍区间的个数。

2024-01-28 15:49:07 135

原创 acwing 1209.带分数(dfs)

【代码】acwing 1209.带分数(dfs)

2024-01-24 15:40:38 354

原创 acwing 95.费解的开关(递推)

你玩过“拉灯”游戏吗?25 盏灯排成一个 5×5 的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。下面这种状态给定一些游戏的初始状态,编写程序判断游戏者是否可能在 66 步以内使所有的灯都变亮。

2024-01-24 15:35:22 485

原创 全排列(dfs)

给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。

2024-01-22 16:31:03 310

原创 二叉树练习 Leetcode 100.相同的树

给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

2024-01-19 14:53:19 361

原创 数组练习 Leetcode 1222.可以攻击国王的王后

在一个的8 x 8棋盘上,可能有多个黑皇后和一个白国王。给你一个二维整数数组queens,其中表示第i个黑皇后在棋盘上的位置。还给你一个长度为2的整数数组king,其中表示白国王的位置。返回能够直接攻击国王的黑皇后的坐标。你可以以返回答案。上面的图示显示了三个可以直接攻击国王的皇后和三个不能攻击国王的皇后(用红色虚线标记)。上面的图示显示了三个能够直接攻击国王的黑皇后和三个不能攻击国王的黑皇后(用红色虚线标记)。

2024-01-19 14:32:20 312

原创 acwing 143.最大异或对(字典树)

题目传送门:在给定的 N 个整数 A1,A2……AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少?

2024-01-19 08:36:09 347

原创 数组练习 Leetcode 66.加一

给定一个由组成的数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储数字。你可以假设除了整数 0 之外,这个整数不会以零开头。[1,2,4]输入数组表示数字 123。[4,3,2,2]输入数组表示数字 4321。[1]

2024-01-18 19:27:34 415

原创 数组练习 Leetcode 566.重塑矩阵

在 MATLAB 中,有一个非常有用的函数reshape,它可以将一个m x n矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组mat表示的m x n矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。

2024-01-17 23:37:30 853

原创 链表练习 Leetcode 61.旋转链表

给你一个链表的头节点head,旋转链表,将链表每个节点向右移动k个位置。

2024-01-17 19:46:05 451

原创 链表练习 Leetcode82.删除排序链表中的重复元素 II

给定一个已排序的链表的头head删除原始链表中所有重复数字的节点,只留下不同的数字。返回已排序的链表。

2024-01-16 17:05:56 360

原创 链表练习 Leetcode234.回文链表

给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。truefalse[1, 105]你能否用O(n)时间复杂度和O(1)空间复杂度解决此题?

2024-01-16 16:31:12 396

原创 堆排序算法

输入一个长度为 n 的整数数列,从小到大输出前 m 小的数。

2024-01-15 11:09:09 383

原创 连通块中点的数量(并查集)

给定一个包含 n 个点(编号为 1∼n)的无向图,初始时图中没有边。

2024-01-15 08:48:07 345

原创 Trie字符串统计

I xQ x共有 N 个操作,所有输入的字符串总长度不超过 105105,字符串仅包含小写英文字母。

2024-01-14 17:03:24 334

原创 LeetCode255.用队列实现栈

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppop和empty实现MyStackint pop()int top()truefalsesizeis empty// 返回 2// 返回 2// 返回 False100pushpoptopemptypoptop你能否仅用一个队列来实现栈。

2024-01-10 16:25:49 532

原创 合并集合(并查集应用)

一共有 n 个数,编号是 1∼n1,最开始每个数各自在一个集合中。M a bQ a b。

2023-12-01 22:27:02 339

原创 acwing800.数组元素的目标和(双指针)

给定两个升序排序的有序数组 A 和 B,以及一个目标值 x。数组下标从 0 开始。请你求出满足 A[i]+B[j]=x 的数对 (i,j)。数据保证有唯一解。

2023-12-01 16:23:19 333

原创 KMP字符串

给定一个字符串 S,以及一个模式串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模式串 P 在字符串 S 中多次作为子串出现。求出模式串 P 在字符串 S 中所有出现的位置的起始下标。

2023-11-30 23:41:09 987

原创 acwing154.滑动窗口(单调队列)

给定一个大小为 n≤1e6 的数组。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k 个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为,k 为 3。你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。

2023-11-28 13:33:36 354

原创 acwing830.单调栈

给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。

2023-11-27 13:09:48 356

原创 acwing829.模拟队列(数组模拟)

实现一个队列,队列初始为空,支持四种操作

2023-11-27 12:32:23 370

原创 acwing828. 模拟栈(数组模拟)

push xpopemptyquery现在要对栈进行 M 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。

2023-11-27 11:59:54 303

原创 acwing827.双链表(数组模拟)

现在要对该链表进行 M 次操作,进行完所有操作后,从左到右输出整个链表。:题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n 个插入的数。

2023-11-27 11:19:12 841

原创 acwing826. 单链表(静态链表)

现在要对该链表进行 M 次操作,进行完所有操作后,从头到尾输出整个链表。:题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n 个插入的数。

2023-11-26 19:01:53 909 2

原创 acwing803 区间合并

给定 n 个区间 [li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3][1,3] 和 [2,6][2,6] 可以合并为一个区间 [1,6][1,6]。

2023-11-25 23:39:04 394

原创 区间和的求取(离散化)

假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] 之间的所有数的和。

2023-11-25 21:12:09 311

原创 求二进制中1的个数(位运算知识点)

给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。

2023-11-25 15:40:20 413

原创 最长连续不重复子序列

给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。

2023-11-25 15:22:22 299

原创 数的三次方根

给定一个浮点数 n,求它的三次方根。

2023-10-04 17:33:24 20 1

原创 逆序对的数量

给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。

2023-10-04 13:32:48 96 1

原创 第k 个数

给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数。

2023-10-04 10:21:54 55 1

原创 差分矩阵代码

输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上 c。请你将进行完所有操作后的矩阵输出。

2023-10-03 22:10:13 24 1

原创 算法——差分

输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。请你输出进行完所有操作后的序列。

2023-10-03 21:44:47 26 1

原创 区间前缀和(二维)

输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。

2023-10-03 21:38:27 23 1

原创 高精度除法

给定两个非负整数(不含前导 00) A,B,请你计算 A/B 的商和余数。

2023-10-03 21:19:51 28 1

原创 求前缀和代码

输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。

2023-10-03 21:09:19 24 1

原创 高精度乘法

题目链接给定两个非负整数(不含前导 00) A 和 B,请你计算 A×B 的值。

2023-09-26 23:39:59 32 1

原创 高精度减法

高精度减法:给定两个正整数(不含前导 0),计算它们的差,计算结果可能为负数。

2023-09-26 22:57:20 38 1

原创 高精度加法

给定两个正整数(不含前导 0),计算它们的和。

2023-09-26 12:50:14 30 1

空空如也

空空如也

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

TA关注的人

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