- 博客(14)
- 资源 (4)
- 收藏
- 关注
原创 子集生成 【DFS】 【Python】
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]思路:使用dfs搜索出所有子集,注意:像{1,7,4}和{1,4,7}虽说顺序不同但属于同一种子集,需要进行条件判断from c
2022-04-04 13:06:03 1035
原创 力扣: 字典序排数【DFS】【Python】
给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。示例 1:输入:n = 13输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]示例 2:输入:n = 2输出:[1,2]思路:把1-10每一个数字一路走到尾,如果超过了则退回来加数def lexicalOrder(n): def dfs(num) : if num > n
2022-04-04 12:53:40 645
原创 蓝桥杯:迷宫与陷阱 【BFS】【Python】
小明在玩一款迷宫游戏,在游戏中他要控制自己的角色离开一间由 N×N 个格子组成的 2D 迷宫。小明的起始位置在左上角,他需要到达右下角的格子才能离开迷宫。每一步,他可以移动到上下左右相邻的格子中(前提是目标格子可以经过)。迷宫中有些格子小明可以经过,我们用 '.' 表示。有些格子是墙壁,小明不能经过,我们用 '#' 表示。此外,有些格子上有陷阱,我们用 'X' 表示。除非小明处于无敌状态,否则不能经过。有些格子上有无敌道具,我们用 '%' 表示。当小明第一次到达该格子时,自动获得
2022-04-02 14:19:42 576
原创 蓝桥杯: 调手表【BFS】【Python】
题目描述小明买了块高端大气上档次的电子手表,他正准备调时间呢。在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有n分钟。大家都知道,手表只有一个按钮可以把当前的数加一。在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 。如果当前的数是n - 1,按一次后会变成 0。作为强迫症患者,小明一定要把手表的时间调对。如果手表上的时间比当前时间多 1,则要按n - 1次加一按钮才能调回正确时间。小明想,如果手表可以再添加一个按钮,表...
2022-04-02 12:27:51 325
原创 蓝桥杯:合根植物 【Python】
题目描述w星球的一个种植园,被分成m×n个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入描述第一行,两个整数 m,n,用空格分开,表示格子的行数、列数接下来一行,一个整数k ,表示下面还有k行数据。接下来kk行,每行两个整数a,b表示编号为a的小格子和编号为...
2022-04-02 01:46:16 1363
原创 蓝桥杯:青蛙跳杯子 【BFS】【Python】
题目描述XX 星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。XX 星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。*WWWBBB其中,W 字母表示白色青蛙,B 表示黑色青蛙,∗ 表示空杯子。XX 星的青蛙很有些癖好,它们只做 3 个动作之一: 跳到相邻的空杯子里。 隔着 1 只其它的青蛙(随便什么颜色)跳到空杯子里。 隔着 2 只其它的青蛙(随便什么颜色)跳到空杯子里。
2022-04-01 20:39:46 225
原创 蓝桥杯:跳蚂蚱【BFS】【Python】
题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。如下图所示: 有 9 只盘子,排成 1 个圆圈。 其中 88 只盘子内装着 8 只蚱蜢,有一个是空盘。 我们把这些蚱蜢顺时针编号为 1 ~ 8。每只蚱蜢都可以跳到相邻的空盘中, 也可以再用点力,越过一个相邻的蚱蜢跳到空盘中。请你计算一下,如果要使得蚱蜢们的队形改为按照逆时针排列, 并且保持空盘的位置不变(也就是 1-8换位,2-7换位,...),至少要经过多少次跳跃?这道题可以当成八数码类型的题来看,把整
2022-04-01 19:22:20 582
原创 蓝桥杯:九宫格重排【BFS】【Python】
如下图的九宫格中,放着 1 ~ 8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。 经过若干次移动,可以形成图 2 所示的局面。我们把上图的局面记为:12345678.把下图的局面记为:123.46758显然是按从上到下,从左到右的顺序记录数字,空格记为句点。题目的任务是已知九宫的初态和终态,求最少经过多少步的移动可以到达。如果无论多少步都无法到达,则输出 -1。输入描述输入第一行包含九宫的初态,第二行包含九宫的终态。输出描述输出最少的步数
2022-04-01 17:55:04 1174 1
原创 蓝桥杯:卡片换位【BFS】【Python实现】
题目描述你玩过华容道的游戏吗?这是个类似的,但更简单的游戏。看下面 3 x 2 的格子+---+---+---+| A | * | * |+---+---+---+| B | | * |+---+---+---+在其中放 5 张牌,其中 A 代表关羽,B 代表张飞,* 代表士兵。还有个格子是空着的。你可以把一张牌移动到相邻的空格中去(对角不算相邻)。游戏的目标是:关羽和张飞交换位置,其它的牌随便在哪里都可以。输入描述输入两行 6 个字符表示当前的局面
2022-04-01 15:57:34 379
原创 蓝桥杯:穿越雷区【Python实现】
X 星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。某坦克需要从 A 区到 B 区去( A,B 区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短?已知的地图是一个方阵,上面用字母标出了 A,B 区,其它区都标了正号或负号分别表示正负能量辐射区。例如:A + - + -- + - - +- + + + -+ - + - +B + - + -坦克车只能水平或垂直方向上移动到相邻的区。输入描述第一行是一个整数 nn
2022-04-01 13:38:48 148
原创 BFS算法之迷宫的最短路径
题目描述下图给出了一个迷宫的平面图,其中标记为1的为障碍,标记为0的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按DRRURRDDDR的顺序通过迷宫, 一共10 步。其中D、U、L、R分别表示向下、向上、向左、向右走。 对于下面这个更复杂的迷宫(30 行50 列),请找出一种通过迷宫的方式,其使用的步数最少,...
2022-04-01 12:08:17 3037
行人、自行车、汽车、红绿灯、行人红绿灯、斑马线、盲道、坑的数据集,共两万多张,已经打好标
2022-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人