
每日一题
骄傲的少年磊磊
永远年轻 永远热泪盈眶
展开
-
【每日一题】井字棋
题目来源牛客网链接:井字棋题目描述给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出。测试用例:[[1,0,1],[1,-1,-1],[1,-1,0]]返回:true解题思路井字棋有四种情况表示当前玩家获胜,1代表当前玩家棋子行全为1, 即行的和为3列全为1,即列的和为3主对角全为1, 即主对角和为3副对角全为1,即副对角和为3如原创 2020-12-08 12:37:40 · 2163 阅读 · 1 评论 -
【每日一题】求路径总数
题目来源牛客网链接:求路径总数题目描述请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。输入描述:每组样例输入两个正整数n和m,用空格隔开。(1≤n,m≤8)输出描述:每组样例输出一行结果输入:2 21 2输出:63解题思路如果n或者m为1,则只有一行或者一列,从左上角走到右下角的路径数为n + m。比如: 1 * 1格子,可以先向下走,再原创 2020-12-05 20:35:44 · 1470 阅读 · 0 评论 -
【每日一题】另类加法
题目来源牛客网链接:另类加法题目描述给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。测试样例:1,2返回:3解题思路本题可以通过位运算实现,具体实现如下:二进制位异或运算相当于对应位相加,不考虑进位 比如: 1 ^ 1 = 0 —> 1 + 1 = 0 (当前位值为0,进一位) 1 ^ 0 = 1 —> 1 + 0 = 1 (当前位值为1) 0 ^ 0 = 0 —> 0 + 0 = 0 (当前位值为0)二进制位与运算相当于对应位原创 2020-12-05 19:50:21 · 2810 阅读 · 10 评论 -
【每日一题】求最小公倍数
题目来源牛客网链接:求最小公倍数题目描述正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。输入:5 7输出:35解题思路最小公倍数 = 两数之积除以最大公约数,这里使用碾转相除法进行最大公约数的求解:即a与b的最大公约数可以转化为a、b之间的余数为两者之间最小的数之间的公约数。所以对于输入的两个数进行连续求余,直到余数为0,求余的分母即为结果原创 2020-12-05 19:21:13 · 921 阅读 · 0 评论 -
【每日一题】两种排序方法
题目来源牛客网链接:两种排序方法题目描述考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法:1.根据字符串的字典序排序。例如:“car” < “carriage” < “cats” < "doggies < “koala”2.根据字符串的长度排序。例如:“car” < “cats” < “koala” < “doggies” < “carriage”考拉想知道自己的这些字符串排列顺序是否满足这两种排序方原创 2020-12-04 16:43:19 · 768 阅读 · 0 评论 -
【每日一题】合法括号序列判断
题目来源牛客网链接:合法括号序列判断题目描述给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。测试用例:“(()())”,6返回:true测试用例:“()a()()”,7返回:false测试用例:“()(()()”,7返回:f解题思路1用栈结构实现,栈中存放左括号,当遇到右括号之后,检查栈中是否有左括号,如果有则出栈,如果没有,则说明不匹配。代码展示1class Parenthesis{public:原创 2020-12-04 16:06:14 · 1104 阅读 · 0 评论 -
【每日一题】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-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。输原创 2020-12-04 15:13:36 · 1432 阅读 · 0 评论 -
【每日一题】字符串转换成整数
题目来源牛客网链接:字符串转换成整数题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0输入:+21474836471a33输出:21474836470解题思路...原创 2020-12-01 12:36:25 · 680 阅读 · 0 评论 -
【每日一题】不要二
题目来源牛客网链接:不要二题目描述二货小易有一个W*H的网格盒子,网格的行编号为0~ H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根,小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)输出描述:输出一原创 2020-12-01 11:11:32 · 665 阅读 · 2 评论 -
【每日一题】连续最大和
题目来源牛客网链接:连续最大和题目描述一个数组有N个元素,求连续子数组的最大和。例如:[-1,2,1],和最大的连续子数组为[2,1],其和为3输入描述:输入为两行。 第一行一个整数n(1 <= n <= 100000),表示一共有n个元素 第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。输出描述:所有连续子数组中和最大的值。输入:3-1 2 1输出:3解题思路本题题意很简单,就是求哪一段的子数组的和最大。假设sum[i-1原创 2020-11-30 17:33:40 · 802 阅读 · 0 评论 -
【每日一题】统计回文
题目来源牛客网链接:统计回文题目描述“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “aba”,B = “b”。这里有4种把B插入A的办法:在A的第一个字母之前:原创 2020-11-30 16:52:45 · 674 阅读 · 0 评论 -
【每日一题】进制转换
题目来源牛客网链接:进制转换题目描述给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数。输入描述:输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。输出描述:为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)输入:7 2输出:111解题思路进行取模余数就是当前低进制的位的值是多少,通过除掉进制数,进入下一个进制位的计算。如果是负数,要转成正数计算。代码展示原创 2020-11-28 20:11:59 · 742 阅读 · 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,用空格隔开。 范围均在-30到30原创 2020-11-28 19:33:52 · 3086 阅读 · 4 评论 -
【每日一题】数组中出现次数超过一半的数字
题目来源牛客网链接:数组中出现次数超过一半的数字题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。输入:[1,2,3,2,2,2,5,4,2]输出:2解题思路记录数组中每个数字出现的次数count,若次数超过一半,返回该数字;若未超过一半,将count置为1,从新计数。代码展示class Solution {原创 2020-11-27 15:28:21 · 605 阅读 · 0 评论 -
【每日一题】字符串中找出连续最长的数字串(字符串、贪心)
题目来源牛客网链接:字符串中找出连续最长的数字串题目描述读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串。输入:abcd12345ed125ss123456789输出:123456789解题思路遍历字符串,使用cur去记录连续的数字串,如果遇到不是数字字符,则表示一个连续的数字串结束了,则将数字串跟之前的数字串比较,如果更长,则更新更长原创 2020-11-27 14:48:46 · 1814 阅读 · 2 评论 -
【每日一题】倒置字符串
题目来源牛客网链接:倒置字符串题目描述将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I输入描述:每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100输出描述:依次输出倒置之后的字符串,以空格分割输入:I like beijing.输出:beijing. like I解题思路1先将整个字符串逆置过来,再遍历字符串,找出每个单词,对单词逆置。这里我们使用了stl原创 2020-11-26 15:23:09 · 940 阅读 · 1 评论 -
【每日一题】排序子序列(贪心)
题目来源牛客网链接:排序子序列题目描述牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列。如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2。输入描述:输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)第二行包括n个整数A_i(1 ≤ A_i ≤ 10^9原创 2020-11-26 14:48:27 · 1441 阅读 · 0 评论 -
【每日一题】删除公共字符(字符串、哈希表)
题目来源牛客网链接:删除公共字符题目描述输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”输入描述:每个测试输入包含2个字符串输出描述:输出删除后的字符串输入:They are students.aeiou输出:Thy r stdnts.解题思路将第二个字符串的字符都映射到一个hashtable数组中,用来判断一个字符在这个字符原创 2020-11-25 16:10:43 · 747 阅读 · 0 评论 -
【每日一题】组队竞赛(贪心、排序)
题目来源牛客网链接:组队竞赛题目描述牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如:一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。如样例所示:原创 2020-11-25 15:37:43 · 886 阅读 · 0 评论