首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
牛客362459853号
获赞
37
粉丝
1
关注
3
看过 TA
15
重庆邮电大学
2015
数据分析师
IP属地:浙江
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑牛客362459853号吗?
发布(29)
评论
刷题
牛客362459853号
关注TA,不错过内容更新
关注
2022-10-30 13:33
已编辑
重庆邮电大学 数据分析师
题解 | #24点游戏算法#
经典的24点游戏,已知4个数字a,b,c,d。通过添加运算符(包含括号,0个、一个或两个括号)。通过分析可知,这四个数字的运算包括以下几种:不考虑数字顺序,?为任意运算符1、; 2、; 3、((a?b)\?c)\?d , (a?(b?c))?d; 4、那么问题可拆分为:两两组合后再运算,三个组合运算后的结果再与另一个数字运算。一:两两运算共6种组合:0ab:a+b,a-b,a*b,b-a,a/b,b/a1ac:a+c,a-c,a*c,c-a,a/c,c/a2ad:a+d,a-d,a*d,d-a,a/d,d/a3bc:b+c,b-c,b*c,c-b,b/c,c/b4bd:b+d,b-d,b*d,...
0
点赞
评论
收藏
分享
2022-10-29 20:00
重庆邮电大学 数据分析师
题解 | #求最小公倍数#
#include <iostream> #include <cmath> using namespace std; int main() { int a, b; while (cin >> a >> b) { // 注意 while 处理多个 case if(a>b) swap(a,b); if(b%a==0||1==a) {cout<<b<<endl; break;} int i=2,sum=1; while(i<=pow(a,...
0
点赞
评论
收藏
分享
2022-02-26 17:56
重庆邮电大学 数据分析师
题解 | #顺时针旋转矩阵#如何实现空间复杂度O(1)
描述 有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵。 数据范围:0 < n < 300,矩阵中的值满足 0≤val≤1000 问题分析: 首先题目的数据不是很大,所以可以通过暴力解法,也就是直接定义一个二维数组,然后按照题目要求,逐个赋值。 但是我们可不可以在原数组上进行操作呢,通过对矩阵旋转的观察可以发现起规律。 a00,a01,...,a0n a10,a11,...,a1n . ...
0
点赞
评论
收藏
分享
2022-02-22 19:23
重庆邮电大学 数据分析师
题解 | #翻转单词序列#
class Solution { public: string ReverseSentence(string str) { string res=""; int k=str.length(); ...
0
点赞
评论
收藏
分享
2021-11-28 19:17
重庆邮电大学 数据分析师
题解 | #数的划分#抽屉原理
假设n表示成1 1 1 1 ...111 总共n个1,那么先把前面k个1取出来出来, 接下来就是在后面n-k个1插入前面取出来的1(把这k个1当作挡板),总共有n-k+1个空,然后就是公式了。 只是我忘了公式是啥了。 有懂抽屉原理的人可以利用这个思想写,代码时间复杂度应该会比较低。
0
点赞
评论
收藏
分享
2021-11-28 19:05
已编辑
重庆邮电大学 数据分析师
题解 | #除自身以外数组的乘积#真正实现时间O(n),空间O(1)
问题分析: 问题本身不难,如果可以用除法,直接计算数组中每个元素的乘积 k,然后res[i]=k/nums[i]。 但是题目限定不能用除法,如果不限定时间复杂度的话,每个元素都遍历一遍原数租。 但是题目又限定了时间复杂度O(n)。那么应该如何实现呢。定义一个res[]数租,让res[0]=1, res[i]=res[i-1]*nums[i-1],也就是res[i]保存的是前 i-1个 元素的乘积。那么与题目要求不符, 因为res[i]保存的是除nums[i]外所有元素的积,也就是还差后 n-i 个元素的积。 那么我们再用相同的办法从后往前,如果用空间O(n)...
0
点赞
评论
收藏
分享
2021-11-26 21:59
已编辑
重庆邮电大学 数据分析师
题解 | #找位置#巧妙解决输出格式问题
问题分析: 这个问题难就难在如何判断当前是否是最后一个出现的,因为输出格式有要求。最后一个的输出格式跟前面的不同, 那么我们可以转换一下思路,假设每次找到重复的值,每次只输出上一次出现的位置,并用tmp保存当前位置, 那么最后一次出现的位置就不会被输出出来,然后判断tmp是否==i,不等说明重复值最后一个没有输出,然后按最 后出现位置的输出格式补上就行了。 复杂度分析: 时间复杂度O(n2):因为每个元素都遍历了该元素后面的所有元素。 空间复杂度O(1):只定义了几个变量。 优化思路: 因为字符串形式是确定的,那么我们可以利用map来做,只...
0
点赞
评论
收藏
分享
2021-11-26 19:33
已编辑
重庆邮电大学 数据分析师
题解 | #牛牛组数#
问题分析: 题目描述一大堆,实际上就是让你写大数加法,这就是一个脑筋急转弯。示例还特地不按数字大小排序的答案给出来, 就是怕你发现是找最大的x.size()-k+1个数字组成的最大数字 因为其他操作都是截取字符串,和求k-1个个位数的和。 最大和一定是最大的x.size.()-(k-1)个数字组成的数字和后面(k-1)每单个数字的和。 如何获取前x.size()-(k-1)个最大的数字且组合起来是最大的数字,只需要让字符串降序排列就行了, 然后调用一次substr,。接着计算后面(k-1)个数字的和与前面截取的字符串相加...
0
点赞
评论
收藏
分享
2021-11-25 20:40
已编辑
重庆邮电大学 数据分析师
数独求解(靠逻辑解数独)
数独求解 之前写过一个数独的题解,但是那个题解里各个函数是分散的。下面给出完整代码。能够解不需要枚举的数独而是靠逻辑一步步解出数独。 给下面一个例子: board{{0,0,7,0,0,5,0,0,3}, {0,0,0,6,3,0,0,0,0}, {5,6,0,0,0,0,9,2,0}, &nbs...
0
点赞
评论
收藏
分享
2021-11-25 00:45
已编辑
重庆邮电大学 数据分析师
题解 | #旋转链表#
描述 给定链表的头节点,旋转链表,降链表每个节点往右移动 k 个位置,原链表后 k 个位置的节点则依次移动到链表头。 即,例如链表 : 1->2->3->4->5 k=2 则返回链表 4->5->1->2->3 数据范围:链表中节点数满足 , 问题分析:循环移位,其实跟数租循环移位差不多,只不过数组可以直接获得数租长度,而链表长度未知。所以需要先 遍历一遍链表获得链表长度num,不能先操作,因为k可能比链表长度大。然后用k对num取余,结果肯定比链表长...
0
点赞
评论
收藏
分享
2021-11-25 00:00
已编辑
重庆邮电大学 数据分析师
题解 | #被围绕的区域#
描述 给定一个 n*m 大小的的矩阵,矩阵中由 ‘X' 和 'O' 构成,找到所有被 'X' 围绕的区域,并将其用 'X' 填充。 例如: [['X','X','X','X'], ['X','O','O','X'], ['X','O','X','X'], ['X','X','O','X']] 中间的三个 ‘O’ 被 'X'围绕,因此将其填充为 'X' ,但第四行的 'O' 下方没有被 'X' 围绕,因此不改变,结果为 [['X','X','X','X'], ['X','X'...
0
点赞
评论
收藏
分享
2021-11-25 01:15
已编辑
重庆邮电大学 数据分析师
题解 | #插入区间#
描述 给定一个无重叠的,按照区间起点升序排列的区间列表,在列表中插入一个新区间,如果有原区间有重合,则合并,请返回插入后的区间列表。 数据范围:区间列表长度满足 , 区间的左右端点满足 问题分析:插入区间,无非就是对要插入的区间对原区间列表两两比较。可以分如下几种情况。 假设原区间第一区间为[a0,b0],最后一个区间为[an,bn],需要新插入的区间为[e,f]。 一、e>=bn,当是大于时,直接在最后插入,当取=时,直接修改bn; 二、e>=an,直接让bn=max(bn...
0
点赞
评论
收藏
分享
2021-11-24 00:31
已编辑
重庆邮电大学 数据分析师
题解 | #对角线遍历矩阵#
描述 给定一个大小为 n*m 的矩阵,请以对角线遍历并返回遍历结果 数据范围: ,矩阵中的元素满足 例1、输入:[[1,2,3],[4,5,6],[7,8,9]],输出: [1,2,4,7,5,3,6,8,9] 例2、输入:[[1,3],[2,4]],输出:[1,3,2,4] 问题分析:通过观察发现所有(i+j)为奇数的点都是斜向下(除了结尾的点),所有(i+j)为偶数的点(除了开始点)都是斜向上。 奇数点的尾部只要i<m,直接++i,否则++j。而偶数点的开头只要j<...
0
点赞
评论
收藏
分享
2021-11-23 21:02
重庆邮电大学 数据分析师
题解 | #两两交换链表的节点#
描述 给你一个链表,请你两两交换相邻节点,你需要真正交换节点本身,而不是修改节点的值。 两两交换示例: 链表 :1->2->3->4 交换后 :2->1->4->3 链表 :1->2->3 交换后: 2->1->3 数据范围:链表长度满足 , 链表上的值满足 ...
0
点赞
评论
收藏
分享
2021-11-23 20:23
已编辑
重庆邮电大学 数据分析师
题解 | #给单链表加一#
描述 给定一个用单链表表示的整数,然后把这个整数加一。 数据范围:链表长度满足 ,链表上每个节点的值满足 ,可以保证链表在非 0 的情况下没有前导零 问题分析:其实这个跟数租加一一样,同样从后往前逐个检查当前值是否为9,是9就重置为0,否则直接当前值+1,退出循环。 只不过数租可以通过下标直接从后往前,而链表不能从后往前,那么我们可以反转链表,然后从前往后逐个判断是否为9。操作同数租。 值得注意的是p->next=NULL这个特殊的节点,因为如果直到最后都满足条件,p=p->ne...
0
点赞
评论
收藏
分享
1
2
关注他的用户也关注了:
牛客网
牛客企业服务