![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题
文章平均质量分 53
数据结构与算法
烁华
这个作者很懒,什么都没留下…
展开
-
Java的集合工具类为什么这么香(从算法的角度深入走进Comparable、Comparator、Collections、Arrays)
深入了解Java的集合工具类:Collections、Arrays、Comparable、Comparator原创 2021-04-15 10:06:19 · 504 阅读 · 0 评论 -
矩阵顺时针转90°
題目一起來第一反应就是借助额外的内存空间来记录会被被覆盖的数值,但其实看透了是可以不需要使用额外的内存空间,思路如下图public class Main { public static void main(String[] args) { // Scanner sc = new Scanner(System.in); int[][] matrix = new int[5][5]; for (int i = 0; i < 25; i++) { matrix[i / 5][i %原创 2021-04-13 09:54:11 · 166 阅读 · 0 评论 -
随机链表的复制
import java.util.HashMap;public class Main { public static void main(String[] args) { // Scanner sc = new Scanner(System.in); Node p1 = new Node(null, 1, null); Node p2 = new Node(null, 2, null); Node p3 = new Node(null, 3, null); Node p4 = ne.原创 2021-04-13 09:27:43 · 269 阅读 · 2 评论 -
REPEAT 程序(栈的运用)
给出一千多行循环伪代码的附件,上图附件,求A的最终结果。这道题是栈的运用,解题如下:import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.Stack;public class Main { public static void main(String[] args) throws Exception { BufferedReader br=new Buffe.原创 2021-04-06 20:34:47 · 308 阅读 · 0 评论 -
测试次数(经典动态规划问题之扔鸡蛋问题)——两种解法:迭代、递归
x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。如果到了塔的最高层第n层扔没摔坏,则耐摔指数原创 2021-04-06 09:55:42 · 263 阅读 · 1 评论 -
人物相关性分析
【问题描述】小明正在分析一本小说中的人物相关性。他想知道在小说中Alice 和Bob有多少次同时出现。更准确的说,小明定义Alice 和Bob“同时出现”的意思是:在小说文本中Alice 和Bob 之间不超过K 个字符。例如以下文本:This is a story about Alice and Bob. Alice wants to send a private message to Bob.假设K = 20,则Alice 和Bob 同时出现了2 次,分别是”Alice and Bob”和原创 2021-03-27 17:43:17 · 297 阅读 · 0 评论 -
蓝桥杯之迷宫问题
下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫,一共10 步。其中D、U、L、R 分别表示向下、向上、向左、向右走。对于下面这个更复杂的迷宫(30 行50 列),请找出一种通过迷宫的方式,其使用的步数最少,在步数最少的前提下,请找出字典序转载 2021-03-26 20:52:11 · 550 阅读 · 0 评论 -
螺旋折线(按四条边去分就够了!)
找规律题咱就是个菜鸡啊!!!!!!!!刚开始看得出内外嵌套正方形,但就是一直在死磕特殊点啊,什么第N象限啊(陷入死循环)。我真的有点服我自己了。。。做题有时就是最怕这种,当遇到这种情况,要么换角度思考,要么先pass掉。到最后发现,其实这道题很简单,只要累加嵌套在里面的正方形+四条边分情况去累加就行了。规律题做太少了,智商堪忧啊!!!!!!继续加油吧如图p1.pgn所示的螺旋折线经过平面上所有整点恰好一次。对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线原创 2021-03-25 17:31:34 · 407 阅读 · 0 评论 -
蓝桥杯之取球博弈
【题目】两个人玩取球的游戏。一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目。如果无法继续取球,则游戏结束。此时,持有奇数个球的一方获胜。如果两人都是奇数,则为平局。假设双方都采用最聪明的取法,第一个取球的人一定能赢吗?试编程解决这个问题。输入格式:第一行3个正整数n1 n2 n3,空格分开,表示每次可取的数目 (0<n1,n2,n3<100)第二行5个正整数x1 x2 … x5,空格分开,表示5局的初始球数(0<xi<1000)输原创 2021-03-23 18:12:11 · 252 阅读 · 0 评论 -
蓝桥杯之剪邮票问题
如图1, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,图2、图3中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。public class Main { static boolean[] book = new boolean[12]; static int[] path = new int[5]; sta原创 2021-03-23 14:59:16 · 343 阅读 · 0 评论 -
斐波那契(黄金分割)查找
斐波那契数列:1 1 2 3 5 8 13 21 .。。。黄金分割点是指把一条线段分割成俩部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位数字的近似值是0.618,由于按比例设计地造型十分美丽,因此被叫黄金分割,也成为中外比对F(k-1)-1的理解:1)由斐波那契数列 F[k]=F[k-1]+F[k-2] 的性质,可以得到 (F[k]-1)=(F[k-1]-1)+(F[k-2]-1)+1 。该式说明:只要顺序表的长度为 F[k]-1,则可以将该表分成长度为 F[k-1..原创 2021-03-16 10:28:49 · 165 阅读 · 0 评论 -
堆排序问题
基本思路:1)将待排序序列构造成一个大顶堆2)此时,整个序列的最大值就是堆顶的根节点。3)将其与末尾元素进行交换,此时末尾就为最大值。4)然后将剩余 n-1 个元素重新构造成一个堆,这样会得到 n 个元素的次小值。如此反复执行,便能得到一个有序序列了将堆顶元素与末尾元素进行交换,使末尾元素最大。然后继续调整堆,再将堆顶元素与末尾元素交换,得到第二大元素。如此反复进行交换、重建、交换。public class Main{ public static void heapSort(int原创 2021-03-15 20:54:26 · 234 阅读 · 0 评论 -
经典问题之八皇后问题
同行、同列、同斜线不能有皇后。解决:DFS+回溯public class Main{ static int[] arr; static int count;//有多少种解法 static int judgeCount;//发生冲突的数量 static int max=8; public static void main(String[] args) { //八皇后问题 //记录路径 arr=new int[max]; check(0); System.out.p原创 2021-03-15 17:10:12 · 142 阅读 · 0 评论 -
蓝桥杯之灵能传输
标题:灵能传输(时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分)【题目背景】在游戏《星际争霸 II》中,高阶圣堂武士作为星灵的重要 AOE 单位,在游戏的中后期发挥着重要的作用,其技能”灵能风暴“可以消耗大量的灵能对一片区域内的敌军造成毁灭性的伤害。经常用于对抗人类的生化部队和虫族的刺蛇飞龙等低血量单位。【问题描述】你控制着 n 名高阶圣堂武士,方便起见标为 1,2,··· ,n。每名高阶圣堂武士需要一定的灵能来战斗,每个人有一个灵能值 a i 表示其拥有的灵能的多少(原创 2021-03-14 10:17:24 · 283 阅读 · 0 评论 -
蓝桥杯之后缀表达式
【问题描述】给定N 个加号、M 个减号以及N + M + 1 个整数A1; A2; ; AN+M+1,小明想知道在所有由这N 个加号、M 个减号以及N + M +1 个整数凑出的合法的后缀表达式中,结果最大的是哪一个?请你输出这个最大的结果。例如使用1 2 3 + -,则“2 3 + 1 -” 这个后缀表达式结果是4,是最大的。【输入格式】第一行包含两个整数N 和M。第二行包含N + M + 1 个整数A1; A2; ; AN+M+1。【输出格式】输出一个整数,代表答案。【样例输入】原创 2021-03-14 08:48:13 · 183 阅读 · 2 评论 -
蓝桥杯之人物相关性分析(正则表达式!!!)
题目不难,关键在于空格和字符 . 需要对其进行转义(一道让我疑惑半天的题目)!可能是对正则表达式这方面之前接触的比较少把,做题的时候没有这个意识。以后要增强此方面的意识和能力。加油!【问题描述】小明正在分析一本小说中的人物相关性。他想知道在小说中Alice 和Bob有多少次同时出现。更准确的说,小明定义Alice 和Bob“同时出现”的意思是:在小说文本中Alice 和Bob 之间不超过K 个字符。例如以下文本:This is a story about Alice and Bob. Ali原创 2021-03-13 23:54:38 · 373 阅读 · 0 评论 -
第十届蓝桥杯迷宫问题
下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫,一共10 步。其中D、U、L、R 分别表示向下、向上、向左、向右走。对于下面这个更复杂的迷宫(30 行50 列),请找出一种通过迷宫的方式,其使用的步数最少,在步数最少的前提下,请找出字典序原创 2021-03-13 17:37:37 · 380 阅读 · 0 评论 -
蓝桥杯第七届真题 :取球博弈
【题目】两个人玩取球的游戏。一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目。如果无法继续取球,则游戏结束。此时,持有奇数个球的一方获胜。如果两人都是奇数,则为平局。假设双方都采用最聪明的取法,第一个取球的人一定能赢吗?试编程解决这个问题。输入格式:第一行3个正整数n1 n2 n3,空格分开,表示每次可取的数目 (0<n1,n2,n3<100)第二行5个正整数x1 x2 … x5,空格分开,表示5局的初始球数(0<xi<1000)输原创 2021-03-10 10:52:18 · 375 阅读 · 0 评论 -
LeetCode之正则表达式匹配
今天做到LeetCode中的第十题:正则表达式匹配,难度级别为困难,匹配情况复杂,思路不难理解,但是仍无从下手,暂且先记录一下,改日再做研究理解。给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。public static boolean isMatch(String s,String p) { if(s==null||p原创 2021-03-04 15:39:24 · 430 阅读 · 1 评论 -
LeetCode之二叉搜索树中的众数
很有必要记录一下此题,在力扣中显示的难度系数的简单,确实如果不考虑时间复杂度和空间复杂度的前提下解出该题并没有那么难,但是其优化对于现在我这种新手程度来讲还是相对优点难度的。...原创 2021-01-29 11:31:12 · 200 阅读 · 0 评论 -
查并集解决区域划分问题
最近LeetCode的每日一题频繁出现查并集算法题,今天就来记录一下力扣的959题.由斜杠划分区域 在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此 \ 用 “\” 表示。)。返回区域的数目。示例1:示例2:示例3:示例4:示例5:提示:题目解析: 该题是一个关于连通性问题,让我们求解连通分量的个数,解决这个问题没有特别的技巧,根据题意画图分原创 2021-01-26 22:53:02 · 397 阅读 · 0 评论 -
并查集算法Union-Find
之前很少去刷并查集相关的算法题,今天在LeetCode上遇到了,就此对并查集进行一定深度的了解总结。 首先了解一下什么是并查集:并查集就是建立在对不相交集合进行的两种基本操作的基础之上的。操作之一就是:检索某元素属于哪个集合;操作二就是如果两个集合不属于同一个集合则合并这两个集合。查并集这种结构显然可以用链表或森林实现,显然用链表进行查询其时间复杂度应该是O(n)级别的,而使用森林进行查询如果处理的好的话其时间复杂度应该是O(logn)。对于用森林来实现并查集,就是"用树根来标识一个集合"。 并原创 2021-01-24 10:50:55 · 242 阅读 · 0 评论 -
LeetCode值翻转矩阵后的得分
题目:有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数示例:提示:解题思路:对于每一行来说,保证首位是1就是最大数。对于每一列来说,保证1的数量大于0的数量。计算,从末尾开始,每一列的乘数是1的数量方法一:class Solution { public i原创 2020-12-07 00:23:58 · 167 阅读 · 0 评论 -
LeetCode之杨辉三角
题目:示例:观察一下规律,发现当前一行只比上一行多了一个元素,最最关键的一点:本行元素等于上一行元素往后错一位再逐个相加。因此我们只要对最后一行单独处理:最后一行首、尾分别添加一个零然后对应位置求和就可以得到新的一行。class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>>res=new ArrayList&原创 2020-12-06 21:15:12 · 146 阅读 · 0 评论 -
LeetCode之分割数组为连续子序列
题目 给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3 。 如果可以完成上述分割,则返回 true ;否则,返回 false方法:贪心算法从方法一可以看到,对于数组中的元素 x,如果存在一个子序列以 x-1 结尾,则可以将 x 加入该子序列中。将 x 加入已有的子序列总是比新建一个只包含 x 的子序列更优,因为前者可以将一个已有的子序列的长度增加 1,而后者新建一个长度为 1 的子序列,而题目要求分割成的子原创 2020-12-04 18:07:49 · 439 阅读 · 0 评论 -
LeetCode之上升下降字符串
题目: 上升下降字符串给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。重复步骤 5 ,直到你没法从 s 中选择字符。重复步骤 1原创 2020-11-25 23:36:22 · 165 阅读 · 0 评论 -
LeetCode之用最少数量的箭引爆气球
**题目:**在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引原创 2020-11-24 23:58:51 · 179 阅读 · 0 评论 -
LeetCode之完全二叉树的节点个数
题目: 给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例:方法一:迭代深度优先搜索/* * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; *原创 2020-11-24 23:57:58 · 125 阅读 · 0 评论 -
LeetCpde之对链表进行插入排序
题目: 插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止示例:方法一:从前往后找插入点class Solution { public ListN原创 2020-11-20 08:05:55 · 144 阅读 · 0 评论 -
LeetCode之移动零
题目: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序示例:说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数方法一:两次遍历class Solution { public void moveZeroes(int[] nums) { int count=0, n = nums.length,i=0; while (i < n) { if(nums[i]==0) { count++;原创 2020-11-19 08:31:25 · 215 阅读 · 0 评论 -
计算机科学最重要的32个算法
水一波,简单记录一下32个最重要的算法:A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是最佳优先搜索的范例。集束搜索(又名定向搜索,Beam Search)——最佳优先搜索算法的优化。使用启发式函数评估它检查的每个节点的能力。不过,集束搜索只能在每个深度中发现最前面的m个最符合条件的节点,m是固定数字——集束的宽度。二分查找(Binary Sea原创 2020-11-18 19:35:10 · 465 阅读 · 0 评论 -
人工智能之集束搜索Beam Search Algorithm
集束搜索是属于人工智能基础知识中的知情搜索,知情搜索是基于启发法的一种搜索方法,由爬山法——>最陡爬坡法——>最佳优先搜索法——>集束搜索,逐步优化算法通过爬山简单来说下这几种知情搜索算法的区别:比如甲去爬山,其爬山过程中每到分叉点都有n—m条路径可以走,只不过其过程中可能存在下山的路径爬山法:当经过分叉点时,就会判断k条路径(k<n),其中若排除掉下山的路径,剩下的路径中,能够到达较高的路径将会被选择。在爬上法中,是没有记录任何的经过路径信息。最陡爬坡法:当经过分叉点原创 2020-11-18 19:20:17 · 787 阅读 · 0 评论 -
LeetCode之柠檬水找零
题目:在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false示例:方法:模拟情景class Solution { public boolean lemonadeChange(int[]原创 2020-11-18 07:42:35 · 269 阅读 · 0 评论 -
LeetCode之距离顺序排列矩阵单元格
题目:给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2) 之间的距离是曼哈顿距离,|r1 - r2| + |c1 - c2|。(你可以按任何满足此条件的顺序返回答案。)注意:曼哈顿距离并不是所谓的两点之间的距原创 2020-11-17 17:03:39 · 280 阅读 · 1 评论 -
LeetCode之根据身高重建队列
**题目:**假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例:方法一:先排序在插入/** * 解题思路:先排序再插入 * 1.排序规则:按照先H高度降序,K个数升序排序 * 2.遍历排序后的数组,根据K插入到K的位置上 * * 核心思想:高个子先站好位,矮个子插入到K位置上,前面肯定有K个高个原创 2020-11-16 17:15:52 · 267 阅读 · 0 评论 -
LeetCode之移掉K为数字
题目:给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例:思路分析:总体思路就是在压入双向队列时,判断当前要入队的元素是否比队尾元素大,如果是,压入队尾,如果不是,移除队尾元素循环判断,直到K为0且队列不为空class Solution { public String removeKdigits(String num, int k) { Deq原创 2020-11-15 18:26:04 · 204 阅读 · 0 评论 -
LeetCode之数组的相对排序
题目:给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾方法一:计数排序算法思路:这一题第一反应是自定义比较函数,然后再进行排序,但是做完之后参考^2 发现,最简单的是用计数排序,充分利用了题目所给提示信息思路也很清晰,先将arr1中的数全都记录到数组count中,然后遍历arr原创 2020-11-14 10:42:36 · 528 阅读 · 0 评论 -
LeetCode之奇偶链表
题目:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数示例:说明:应当保持奇数节点和偶数节点的相对顺序。链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推方法一:原地实现/** * Definition for singly-linked list. * public c原创 2020-11-13 08:42:31 · 154 阅读 · 0 评论 -
LeetCode之按奇偶排序数组II
题目给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:提示:注意:本题是不需要什么大小顺序之分的,只注重奇数偶数之分方法一:低效率的排序整合class Solution { public int[] sortArrayByParityII(int[] A) { int[] ji=new int[A.l原创 2020-11-12 08:10:00 · 239 阅读 · 0 评论 -
LeetCode之自由之路
题目:示例:提示:ring 和 key 的字符串长度取值范围均为 1 至 100;两个字符串中都只有小写字符,并且均可能存在重复字符;字符串 key 一定可以由字符串 ring 旋转拼出。方法一:动态规划解题思路:class Solution { public int findRotateSteps(String ring, String key) { int n = ring.length(), m = key.length(); List原创 2020-11-11 22:42:17 · 186 阅读 · 2 评论