![](https://img-blog.csdnimg.cn/afc5d2cf174b408aa1a759778d01ec73.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACwing刷题
欢迎来ACwing刷题,学习
星河边采花
JiangZY
展开
-
格子游戏
Alice和Bob玩了一个古老的游戏:首先画一个 n×n 的点阵(下图 n=3)。接着,他们两个轮流在相邻的点之间画上红边和蓝边:直到围成一个封闭的圈(面积不必为 1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了,他们的游戏实在是太长了!他们甚至在游戏中都不知道谁赢得了游戏。于是请你写一个程序,帮助他们计算他们是否结束了游戏?原创 2022-10-24 23:15:08 · 221 阅读 · 0 评论 -
最多能完成排序的块 II leetcode768 (单调栈)
这个问题和“最多能完成排序的块”相似,但给定数组中的元素可以重复,输入数组最大长度为2000,其中的元素最大为10**8。arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。我们最多能将数组分成多少块?示例 1:输入: arr = [5,4,3,2,1]输出: 1解释:将数组分成2块或者更多块,都无法得到所需的结果。原创 2022-10-13 23:12:59 · 62 阅读 · 0 评论 -
01背包问题
01背包问题 有 N 件物品和一个容量是 V的背包。每件物品只能使用一次。第 i件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。原创 2022-10-08 12:49:31 · 93 阅读 · 0 评论 -
走迷宫(宽搜为什么能搜到最短路)
走迷宫(宽搜为什么能搜到最短路)给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m)处,至少需要移动多少次。数据保证 (1,1)处和 (n,m) 处的数字为 0,且一定至少存在一条通路。原创 2022-10-07 19:38:17 · 78 阅读 · 0 评论 -
n-皇后问题 (dfs)(与leetcode题相同)
n−皇后问题是指将 n 个皇后放在 n×n的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数 n,请你输出所有的满足条件的棋子摆法。原创 2022-10-07 11:00:06 · 274 阅读 · 0 评论 -
排列数字
给定一个整数 n,将数字 1∼n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。原创 2022-10-07 10:03:55 · 212 阅读 · 0 评论 -
堆排序(数组模拟堆)
堆排序(数组模拟堆)输入一个长度为 n 的整数数列,从小到大输出前 m小的数。原创 2022-10-07 09:05:43 · 241 阅读 · 0 评论 -
食物链 (并查集)
食物链 (并查集)动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A吃 B,B 吃 C,C 吃 A。现有 N个动物,以 1∼N编号。每个动物都是 A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 N个动物所构成的食物链关系进行描述:第一种说法是1 X Y,表示 X和 Y是同类。第二种说法是2 X Y,表示 X吃 Y。此人对 N个动物,用上述两种说法,一句接一句地说出 K 句话,这 K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,原创 2022-10-06 22:04:57 · 958 阅读 · 0 评论 -
二进制中1的个数 (位运算)
给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1的个数。原创 2022-09-29 22:09:08 · 187 阅读 · 0 评论 -
离散化(保序 / 非保序)
离散化(保序) 给定一系列要为坐标的值,可能很大,1 到 10e9 ,总不能开一个10e9的数组吧,就要涉及到离散化,将10e5个数(大小在10e9之内)映射到1~10e5,这个映射的过程就叫离散化。区间和假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。现在,我们首先进行 n次操作,每次操作将某一位置 x 上的数加 c。接下来,进行 m次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r]之间的所有数的和。原创 2022-09-21 11:39:14 · 429 阅读 · 0 评论 -
单调队列(滑动窗口 )
给定一个大小为 n≤106的数组。有一个大小为 k的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为,k为 3。你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。输入格式输入包含两行。第一行包含两个整数 n和 k,分别代表数组长度和滑动窗口的长度。第二行有 n个整数,代表数组的具体数值。同行数据之间用空格隔开。输出格式输出包含两个。第一行输出,从左至右,每个位置滑动窗口中的最小值。原创 2022-10-06 12:06:56 · 75 阅读 · 0 评论