![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
文章平均质量分 80
MOUYULOU
这个作者很懒,什么都没留下…
展开
-
背包问题,动态规划实现
背包问题 动态规划原创 2022-06-10 21:53:11 · 174 阅读 · 1 评论 -
字符串相关题目(一) 无重复字符的最长子串 最长回文子串
无重复字符的最长子串,最长回文串 动态规划 滑动窗口原创 2022-06-09 22:51:17 · 206 阅读 · 0 评论 -
简单动态规划讲解
简单动态规划讲解斐波那契数列思路代码实现青蛙跳台阶问题思路代码实现矩形覆盖思路代码实现斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,原创 2022-05-17 22:10:46 · 205 阅读 · 0 评论 -
数组相关练习题
数组相关题二维数组中查找思路代码实现旋转数组的最小数字思路代码实现调整数组顺序使奇数位于偶数前面思路代码数组中出现次数超过一半的数字思路代码实现二维数组中查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 1原创 2022-05-07 22:50:04 · 541 阅读 · 0 评论 -
刷题(十八) 查找两个字符串a,b中最长的公共字串 字符串通配符
查找两个字符串a,b中最长的公共字串 字符串通配符查找两个字符串a,b中最长的公共字串思路代码字符串通配符思路代码查找两个字符串a,b中最长的公共字串题目描述:查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!本题含有多组输入数据!数据范围:字符串长度1<=s<=300,1<=t<=5示例:输入:abcdefghijklmnopabcsafjk原创 2022-01-11 20:09:03 · 260 阅读 · 0 评论 -
刷题(十七) 完全数计算 扑克牌的大小
完全数计算 扑克牌的大小完全数计算思路代码扑克牌的大小思路代码完全数计算题目描述:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。输入n,请输出n以内(含n)完全数的个数。数据范围: 1<=n<=5*10^5本题输入含有多组样例。输入描述:输入一个数字n。输出描原创 2022-01-07 22:11:03 · 182 阅读 · 0 评论 -
刷题(十六)查找输入整数二进制中1的个数 手套
查找输入整数二进制中1的个数 手套查找输入整数二进制中1的个数思路代码手套思路代码查找输入整数二进制中1的个数题目描述:输入一个正整数,计算它在二进制下的1的个数。注意多组输入输出!!!!!!输入描述:输入一个整数。输出描述:计算整数二进制中1的个数示例:输入:5输出:2链接:查找输入整数二进制中1的个数思路通过(n>>i)&1可以获得第i位二进制值,n右移一次可以获取一位的二进制值,n变为0循环终止。代码import java.util.*;public c原创 2022-01-06 22:25:17 · 78 阅读 · 0 评论 -
刷题(十五) 幸运的袋子 计算日期到天数的转换
幸运的袋子 计算日期到天数的转换幸运的袋子思路代码计算日期到天数的转换思路代码幸运的袋子题目描述:一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的多原创 2022-01-05 21:43:28 · 274 阅读 · 0 评论 -
刷题(十四)跳石板 参数解析
跳石板 参数解析跳石板思路代码参数解析思路代码跳石板题目描述:小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3…这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。例如:N = 4,M = 24:4->6->8->12->18->24于是小原创 2022-01-05 09:45:20 · 185 阅读 · 0 评论 -
刷题(十三)二进制插入 查找组成一个偶数最接近的两个素数
二进制插入 查找组成一个偶数最接近的两个素数二进制插入思路代码查找组成一个偶数最接近的两个素数思路代码二进制插入题目描述:给定两个32位整数n和m,同时给定i和j,将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1,其中二进制的位数从0开始由低到高。示例:输入:1024,19,2,6输出:1100链接:二进制插入思路n:1024 二进制为 0100 0000 0000m:19 二进制为 000原创 2022-01-03 22:31:52 · 379 阅读 · 0 评论 -
刷题(十二) 最近公共祖先 求最大连续bit数
最近公共祖先 求最大连续bit数最近公共祖先思路代码求最大连续bit数思路代码最近公共祖先题目描述:将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法,返回a、b最近的公共祖先的编号。注意其祖先也可能是结点本身。示例:输入:2,3输出:1链接:最近公共祖先思路代码根据上面的二叉树父节点和子节点之间的关系root=child/2,如果a!=b,就让其中较大的除以2,如此循环知道ab,即是两个数的最近公共祖先,如a=2,b=3,b=原创 2022-01-02 21:05:27 · 230 阅读 · 0 评论 -
刷题(十一) 密码强度等级 井字棋
密码强度等级 井字棋井字棋思路代码密码强度等级思路代码井字棋题目描述:给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出。示例:输入:[[1,0,1],[1,-1,-1],[1,-1,0]]输出:true链接:井字棋思路此题是一道基础题,我们只需要把当前玩家可以获胜的情况全部列出来即可。代码import java.util.*;public c原创 2021-12-31 21:48:40 · 424 阅读 · 0 评论 -
刷题(十)走方格的方案数 另类加法
走方格的方案数 另类加法走方格的方案数思路代码另类加法思路代码走方格的方案数题目描述:请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。注:沿棋盘格之间的边缘线行走本题含有多组样例输入。数据范围: 1<=n,m<=8输入描述:每组样例输入两个正整数n和m,用空格隔开。(1≤n,m≤8)。输出描述:每组样例输出一行结果。示例:输入:2 21 2原创 2021-12-30 21:28:07 · 356 阅读 · 0 评论 -
刷题(九)求最小公倍数 两种排序方法
求最小公倍数 两种排序方法求最小公倍数思路代码两种排序方法思路代码求最小公倍数题目描述:正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。示例1:输入:5 7输出:35示例2:输入:2 4输出:4链接:求最小公倍数思路思路1:A和B的最小公倍数即最小能够整除A和B的数,令max等于AB中最大的那个数,那么A和B的最小公倍数取值范围为max至AB之间,因此我们原创 2021-12-29 20:35:14 · 117 阅读 · 0 评论 -
刷题(八) Fibonacci数列 合法括号序列判断
Fibonacci数列 合法括号序列判断Fibonacci数列思路代码合法括号序列判断思路代码Fibonacci数列题目描述:Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X原创 2021-12-28 20:21:47 · 218 阅读 · 0 评论 -
刷题(七) 字符串转整数 不要二
字符串转整数 不要二字符串转整数思路代码不要二思路代码字符串转整数题目描述:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0数据范围:字符串长度满足 0<=n<=100进阶:空间复杂度O(1) ,时间复杂度 O(n)注意:①字符串中可能出现任意符号,出现除 +/- 以外符号时直接输出 0②字符串中可能出现 +/- 且仅可能出现在字符串首位。输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合原创 2021-12-27 21:50:42 · 185 阅读 · 0 评论 -
刷题(六)统计回文 连续最大和
统计回文 连续最大和统计回文思路代码连续最大和思路代码统计回文题目描述:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “aba”,B = “b”。这里有4种把B插入A的原创 2021-12-25 23:33:08 · 612 阅读 · 0 评论 -
刷题(五) 计算糖果 进制转换
计算糖果 进制转换计算糖果思路代码进制转换思路代码计算糖果题目描述:A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。输入描述:输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔原创 2021-12-22 21:33:50 · 132 阅读 · 0 评论 -
刷题(四)最长的数字串 超过长度一半的数字
最长的数字串 超过长度一半的数字最长的数字串思路代码超过长度一半的数字思路代码最长的数字串题目描述:读入一个字符串str,输出字符串str中的连续最长的数字串。输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串。示例:输入:abcd12345ed125ss123456789输出:123456789链接:字符串中找出连续最长的数字串思路定义两个字符串,一个字符串保存遍历到的数字字符串(cur),另一个字符串保存出现数字原创 2021-12-21 22:20:58 · 168 阅读 · 0 评论 -
刷题(三)排序子序列 倒置字符串
排序子序列 倒置字符串排序子序列思路代码倒置字符串思路代码排序子序列题目描述:牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列.如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2。输入描述:输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)第二行包括n个整数原创 2021-12-20 20:45:52 · 216 阅读 · 0 评论 -
刷题(二)组队竞赛 删除公共字符
组队竞赛 删除公共字符组队竞赛思路代码删除公共字符思路代码组队竞赛题目描述:牛牛举办了一次编程比赛,参加比赛的有3n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如:一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2为了让比赛更有看点,牛牛想安排队伍使所原创 2021-12-19 21:37:22 · 228 阅读 · 0 评论 -
刷题(一):盛最多水的容器
盛最多水的容器题目描述题目描述:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。链接:盛最多水的容器示例一:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分原创 2021-12-19 18:31:56 · 49 阅读 · 0 评论