每日一题
文章平均质量分 59
每日算法题
安河桥畔
保持专注,做正确的事
展开
-
【Day_20】公共子串计算
给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。原创 2022-09-02 22:21:16 · 156 阅读 · 1 评论 -
【Day_20】字符串反转
接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)输入一行,为一个只包含小写字母的字符串。输出该字符串反转后的字符串。原创 2022-08-31 16:42:29 · 110 阅读 · 2 评论 -
【Day_19】查找两个字符串a,b中的最长公共子串
查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!原创 2022-08-30 22:21:41 · 239 阅读 · 4 评论 -
【Day_19】汽水瓶
某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。数据范围:输入的正整数满足1≤n≤100 ......原创 2022-08-25 23:29:18 · 135 阅读 · 3 评论 -
【225. 用队列实现栈】三种方法
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。boolean empty() 如果栈是空的,返回 true;void push(int x) 将元素 x 压入栈顶。// 返回 False。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。两个队列实现,入栈时搬移元素。两个队列实现,出栈时搬移元素。原创 2022-08-25 10:37:12 · 270 阅读 · 10 评论 -
【Day_18】字符串通配符
描述问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:\*:匹配0个或以上的字符(注:能被\*和?匹配的字符仅由英文字母和数字0到9组成,下同)?:匹配1个字符原创 2022-08-21 11:59:11 · 333 阅读 · 5 评论 -
【Day_18】统计每个月兔子的总数
有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少?数据范围:输入满足 1≤n≤31。输入一个int型整数表示第n个月。原创 2022-08-20 23:11:20 · 775 阅读 · 2 评论 -
【Day_17】二叉树的镜像
操作给定的二叉树,将其变换为源二叉树的镜像。要求: 空间复杂度 O(n)。本题也有原地操作,即空间复杂度 O(1的解法,时间复杂度 O(n)数据范围:二叉树的节点数 0≤n≤1000 , 二叉树每个节点的值 0≤val≤1000。操作给定的二叉树,将其变换为源二叉树的镜像。原创 2022-08-20 20:47:17 · 135 阅读 · 0 评论 -
【Day_17】杨辉三角的变形
构造数阵,将题目描述的数阵用动态二维数组构造出来,找到对应行进行遍历,查找第一个偶数,但是这种方式占用内存过大,所以当数字比较大时,会超出内存限制。以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。例如输入3,则输出2,输入4则输出3,输入2则输出-1。将出现位置结果按取模的下标保存在数组中,可以直接通过取模的结果按下标找到对应出现位置。除了一二行之外,后面偶数出现的规律都为:2、3、2、4……原创 2022-08-20 09:51:55 · 299 阅读 · 0 评论 -
【Day_16】扑克牌大小
牛客网:扑克牌大小扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王)😃3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:4 4 4 4-joker JOKER请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR基本规则:(1)输入每手牌可能是个原创 2022-08-19 22:04:49 · 229 阅读 · 1 评论 -
【Day_16】完全数计算
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。输入n,请输出n以内(含n)完全数的个数。...原创 2022-08-16 22:39:55 · 196 阅读 · 4 评论 -
【Day_15】查找输入整数二进制中1的个数
一个数和比自己小1的数按位与会消去二进制中的一个1。输入一个正整数,计算它在二进制下的1的个数。数据范围: 1≤n≤ 2^31-1。5的二进制表示是101,有2个1。计算整数二进制中1的个数。原创 2022-08-16 21:49:17 · 185 阅读 · 2 评论 -
【Day_15】▲手套
在地下室里放着n种颜色的手套,手套分左右手,但是每种颜色的左右手手套个数不一定相同。但是昏暗的灯光让他无法分辨手套的颜色,只能分辨出左右手。所以他会多拿一些手套,然后选出一双颜色相同的左右手手套。现在的问题是,他至少要拿多少只手套(左手加右手),才能保证一定能选出一双颜色相同的手套。给定颜色种数n(1≤n≤13),同时给定两个长度为n的数组left,right,分别代表每种颜色左右手手套的数量。数据保证左右的手套总数均不超过26,且一定存在至少一种合法方案。10(解释:可以左手手套取2只,右手手套取8只).原创 2022-08-16 10:00:43 · 121 阅读 · 0 评论 -
【Day_14】▲幸运的袋子
牛客网:幸运的袋子一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的多少种不同的幸运的袋子。输出如图:以1,1,2,3,5,这一组数据为例,11,112,1原创 2022-08-13 10:08:09 · 129 阅读 · 2 评论 -
【Day_14】计算日期到天数转换
根据输入的日期,计算是这一年的第几天。保证年份为4位数且日期合法。原创 2022-08-11 13:17:11 · 228 阅读 · 0 评论 -
【Day_13】▲跳石板
这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。本题的核心思想就是从初始位置向后遍历,标记当前位置能跳到的所有石板的最少步数,而当前位置的标记也是之前位置跳到这里的最少步数,一直遍历到目的地,便得到了到达目标石板的最少步数。以4跳到24为例,从4号开始向后走,4号标记为0,表示跳到4号需要0步,从4号石板开始向后遍历,每到一个石板都标记当前石板能挑到的所有石板所需要的最少步数。...原创 2022-08-10 15:27:35 · 81 阅读 · 0 评论 -
【BM87 合并两个有序的数组】
给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组。这道题是面试中的常考题,核心思想就是从后向前遍历数组,避免数据被覆盖。如果从前往后遍历就需要定义一个数组,会造成空间的浪费。...原创 2022-08-09 23:05:49 · 119 阅读 · 0 评论 -
【43. 字符串相乘】
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。原创 2022-08-08 20:06:19 · 140 阅读 · 1 评论 -
【415. 字符串相加】
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。......原创 2022-08-08 18:17:24 · 116 阅读 · 1 评论 -
【Day_13】参数解析
请编写一个参数解析程序,实现将命令行各个参数解析出来原创 2022-08-02 09:39:02 · 89 阅读 · 0 评论 -
【Day_12】查找组成一个偶数最接近的两个素数
牛客网:查找组成一个偶数最接近的两个素数任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。数据范围:输入的数据满足 4≤n≤1000输出输出...原创 2022-08-01 14:47:34 · 95 阅读 · 0 评论 -
【Day_12】二进制插入
给定两个32位整数n和m,同时给定i和j,将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1,其中二进制的位数从0开始由低到高。这道题主要考察位运算,题目说明了n的第j到i位均为0,所以只要将m的最低位和n的第j位对齐,进行按位或即可。...原创 2022-07-30 13:41:56 · 140 阅读 · 0 评论 -
【Day_11】求最大连续bit数
求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1。每次count自增后都要更新max的值,保证max始终保存的是最大值。200的二进制表示是11001000,最多有2个连续的1。进阶时间复杂度O(logn),空间复杂度O(1)数据范围数据组数1≤t≤5,1≤n≤500000。输出转成二进制之后连续1的个数。输入一个int类型数字。...原创 2022-07-29 20:46:12 · 81 阅读 · 0 评论 -
【Day_11】 最近公共祖先
将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法,返回a、b最近的公共祖先的编号。注意其祖先也可能是结点本身。编号为整型,整型除法计算会舍去小数位,所以每个节点的父节点编号等于子节点编号除以二,对两个节点中编号较大的节点除2,直到两个节点相同为止。...原创 2022-07-28 18:09:23 · 127 阅读 · 1 评论 -
【Day_10】密码强度等级
密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。一、密码长度:5 分: 小于等于4 个字符 0 分: 5 到7 字符 25 分: 大于等于8 个字符二、字母: 0 分: 没有字母 10 分: 密码里的字母全都是小(大)写字母 20 分: 密码里的字母符合”大小写混合“三、数字:0 分: 没有数字10 分: 1 个数字20 分: 大于1 个数字四、符号:0 分: 没有符号10 分: 1 个符号25 分: 大于1 个符号...原创 2022-07-28 16:58:09 · 577 阅读 · 3 评论 -
【Day_10】井字棋
给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出。...原创 2022-07-28 12:02:18 · 270 阅读 · 1 评论 -
【Day_09】走方格的方案数
请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即只能往右和往下走,不能往左和往上走。输入两个正整数n和m,用空格隔开。注沿棋盘格之间的边缘线行走。数据范围1≤n,m≤8。...原创 2022-07-27 10:37:30 · 348 阅读 · 1 评论 -
【Day_09】 另类加法
给定两个intA和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。原创 2022-07-27 09:37:51 · 126 阅读 · 1 评论 -
【Day_08】求最小公倍数
辗转相除法又叫欧几里得算法,用于计算两个非负整数a和b的最大公约数,设a、b两个数的最大公约数为n,则ka+b,b的公约数也为n。以除数和余数反复作除法运算,当余数为0时,当前的除数就是最大公约数。正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。数据范围1≤a,b≤100000。输出A和B的最小公倍数。输入两个正整数A和B。...原创 2022-07-26 13:34:17 · 126 阅读 · 1 评论 -
【Day_08】两种排序方法
考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法1.根据字符串的字典序排序。输入第一行为字符串个数n(n≤100)接下来的n行,每行一个字符串,字符串长度均小于100,均由小写字母组成。如果这些字符串是根据字典序排列而不是根据长度排列输出"lexicographically",如果根据长度排列而不是字典序排列输出"lengths",如果两种方式都符合输出"both",否则输出"none"2.根据字符串的长度排序。...原创 2022-07-26 09:54:28 · 81 阅读 · 0 评论 -
【Day_07】合法括号序列判断
给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。原创 2022-07-25 22:29:25 · 186 阅读 · 1 评论 -
【Day_07】Fibonacci数列
给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。原创 2022-07-25 21:48:06 · 139 阅读 · 0 评论 -
【BM2 链表内指定区间反转】
将一个节点数为size链表m位置到n位置之间的区间反转,要求时间复杂度O(n)O(n),空间复杂度O(1)O(1)。数据范围链表长度0原创 2022-07-25 20:10:03 · 142 阅读 · 0 评论 -
【Day_06】把字符串转换成整数
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0原创 2022-07-23 18:02:00 · 78 阅读 · 0 评论 -
【Day_06】不要二
二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。...原创 2022-07-23 11:47:05 · 122 阅读 · 0 评论 -
【Day_05】连续最大和
一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3原创 2022-07-22 16:44:21 · 106 阅读 · 0 评论 -
【Day_05】统计回文
回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。...原创 2022-07-21 22:18:34 · 95 阅读 · 0 评论 -
【Day_04】进制转换
定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数原创 2022-07-21 17:13:15 · 132 阅读 · 0 评论 -
【Day_04】计算糖果
A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。...原创 2022-07-21 16:10:16 · 105 阅读 · 0 评论 -
【Day_03】数组中出现次数超过一半的数字
给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。数据范围:n≤50000,数组中元素的值 0≤val≤10000要求:空间复杂度:O(1),时间复杂度 O(n)............原创 2022-07-19 15:29:07 · 157 阅读 · 0 评论