首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
Maokt
获赞
1462
粉丝
68
关注
4
看过 TA
436
男
西北工业大学
2019
数据分析师
IP属地:河南
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑Maokt吗?
发布(508)
评论
刷题
Maokt
关注TA,不错过内容更新
关注
2021-08-17 21:08
已编辑
西北工业大学 数据分析师
题解 | #牛牛恨66#
算法思想一:递归 解题思路: 由题知:对于 i 位数的答案,是与 i-1 位和 i-2 位的答案有关系的,首先想到采用递归的方式进行计算 1、递归终止条件:当输入为0时,只有1不含66,返回1;当输入为1时,1到10这十个数都不含66,返回10。 2、递归如何推进:当前位(第i位)可以选择6,也可以不选择6。如果选择6,那么i-1位必须不选择6(共9种选择),此时可由i-2层得到i层,共9*dfs(i-2)种情况;如果不选择6,那么直接由i-1层得到i层,共9*dfs(i-1)种情况。 3、每一层返回值:返回当前层可能数(dfs(i-2)+dfs(i-1))*9。 注:由于普...
0
点赞
评论
收藏
分享
2021-08-16 23:00
已编辑
西北工业大学 数据分析师
题解 | #单帧操作#
算法思想一:暴力枚举 解题思路: 题目的主要信息: 给一串数组,每次找到一个位置进行一次操作:将该位置前后一个数及本身改为三者中的最大值 一共进行n次操作,每次操作需要找到改变后使数组和最大那个位置来改变 利用二进制掩码的特性,枚举所有位置选择或是不选择的组合(相当于n次操作,选择的位置进行排列足组合),按照顺序模拟改变的值,最后更新较大值即可。 注:由于此方法需要进行二进制枚举所有可能性,则最终时间复杂度较高会超时,此方法做了解即可 代码展示: C++版本 class Solution { public: /** * 代码中的类名、方...
0
点赞
评论
收藏
分享
2021-08-02 11:06
西北工业大学 数据分析师
2021-08-02
在牛客打卡168天,今天也很努力鸭!
每日监督打卡
0
点赞
评论
收藏
分享
2021-08-01 18:36
西北工业大学 数据分析师
2021-08-01
在牛客打卡167天,今天也很努力鸭!
每日监督打卡
0
点赞
评论
收藏
分享
2021-08-14 20:30
已编辑
西北工业大学 数据分析师
题解 | #丢棋子问题#
算法思想一:扔棋子方法凑够楼层(逆向思维) 解题思路: 1、初始化扔棋子的次数 t = 1 2、不断的给 t 赋值(增加),直到给出的 t 可以测出楼层 n;其中为计算可测出最高楼层函数 1、当t = 1时,最多可以测出 2 层楼,即 t+1;当k = 1时,(假设 t = 2)则可以测出3层楼,即 t + 1 2、有 t 次机会,k 个棋子,使用一枚棋子 一次机会 1...
0
点赞
评论
收藏
分享
2021-08-17 21:34
已编辑
西北工业大学 数据分析师
题解 | #牛妹的面试#
算法思想一:动态规划+两次遍历 解题思路: 最长上升子序列的衍生题,所谓最长凸子序列 从左边到峰顶的序列是从左到右的最长上升子序列,从峰顶到右侧的序列是从右到左的最长上升子序列 因此可以采用从左到右计算一次各个子序列的最长上升子序列 l2r(其中l2r[i]表示以i结束的最长上升子序列长度),从右到左计算一次各个子序列的最长上升子序列 r2l,将对应位置的解相加,取最大 注:结果要减去1,因为峰顶包含了2次。 图解: 代码展示: Python版本 class Solution: def mountainSequence(self...
0
点赞
评论
收藏
分享
2021-08-16 23:08
已编辑
西北工业大学 数据分析师
题解 | #牛妹的蛋糕#
算法思想一:迭代 解题思路: 由题可知,每天的蛋糕数量等于前一天蛋糕数量去除三分之一再加一个;反过来,每天的蛋糕数量等于后一天数量加1的 3/2 倍计算 因此可以采用迭代从n-1天到第一天的蛋糕数量 图解: 步骤 n 计算 蛋糕数量 1 4 1 2 ...
0
点赞
评论
收藏
分享
2021-07-31 10:17
西北工业大学 数据分析师
2021-07-31
在牛客打卡166天,今天学习:刷题 3 道/代码提交 7 次
每日监督打卡
0
点赞
评论
收藏
分享
2021-08-19 21:29
已编辑
西北工业大学 数据分析师
题解 | #牛妹的礼物#
算法思想一:动态规划 解题思路: 简单的动态规划,直接走就行了, 1、当只有一行的数据只能右边走所以数据只跟左边的数据有关 2、当只有一列的数据只能从上面往下走,只跟上面数据有关 3、其他情况可以来自三个方向,上面,下面,左上来计算 算法流程: 1、两层遍历矩阵 row属于【0,N】,col 属于【0,M】 1、第一行的只能左边来,动态方程: 2、第一列只能上面来,动态方程: 3、其他方式有两种 从左上,...
0
点赞
评论
收藏
分享
2021-08-24 21:59
已编辑
西北工业大学 数据分析师
题解 | #牛能和牛可乐的礼物#
算法思想一:动态规划 解题思路: 将问题转换为01背包问题,两个分组的值越接近总和一半差值越小,将总和一半看作背包的最大容量,每次放入的数字就是每次的体积,最后做差返回即可 定义dp数组,其中表示背包空间为 i 时装物品的最大价值: :背包容量 j 装不下第个礼物装不下,继承的值 背包容量 j 装得下第个物品在装下与装不下中选择最大值 即 图解: 代码展示: Python版本 class Solution: def maxPresent(self , presentVec ): ...
0
点赞
评论
收藏
分享
2021-08-16 23:02
已编辑
西北工业大学 数据分析师
题解 | #字符串距离计算#
算法思想一:暴力枚举 解题思路: 枚举所有可能的X1和X2,然后计算替换之后的答案,从所有可能的答案中选取最小值 代码展示: C++版本 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算最少的距离 * @param S1 string字符串 第一个字符串 * @param S2 string字符串 第二个字符串 * @return int整型 */ int GetMinDistance...
0
点赞
评论
收藏
分享
2021-08-14 20:41
已编辑
西北工业大学 数据分析师
题解 | #那些插队的人#
算法思想一:遍历 解题思路: 可分为没插过队的和插过队的两种,最后的排队,没插过队的都在后面,插过队的最大值是个分界线。没插过队的小于这个分界线最后一定不在原来的位置,大于的一定在原来位置,插过队的,我们从后往前看,删除重复的,就是排队序列直接统计插过队的还在原来位置上的人数即可 代码展示: Python版本 class Solution: def countDislocation(self , n , cutIn ): # write code here # 哈希表 cd = set() m = len(cutIn) ...
0
点赞
评论
收藏
分享
2021-07-30 12:21
西北工业大学 数据分析师
2021-07-30
在牛客打卡165天,今天也很努力鸭!
每日监督打卡
0
点赞
评论
收藏
分享
2021-08-17 21:23
已编辑
西北工业大学 数据分析师
题解 | #字符串变形#
算法思想一:分块变形 解题思路: 主要是通过将字符串以空格分割开为字符串数组,然后对数组进行倒序遍历,在遍历过程对字符串进行大小写变换 1、初始化返回字符串result,字符串分割为数组: 2、倒序遍历 i: 1、当 i != 0 时,对字符串进行大小写变换,在字符串后需要加空格连接 2、当 i == 0 时,对字符串进行大小写变换,不需要在字符串后需要加空格连接 3、返回result 图解: 代码展示: Python版本 ...
0
点赞
评论
收藏
分享
2021-08-16 22:48
已编辑
西北工业大学 数据分析师
题解 | #寻找第K大#
算法思想一:冒泡局部排序 解题思路: 只排序前K个数 1、主要利用冒泡排序算法对数组进行排序 2、从排序后的数组中直接获取第K大的数值 代码展示: Python版本 class Solution: def findKth(self, a, n, K): # write code here # 冒泡排序 只需要对top K个数进行排序 for i in range(K): for j in range(n-i-1): if a[j] > a...
0
点赞
评论
收藏
分享
1
15
16
17
18
19
34
关注他的用户也关注了:
牛客网
牛客企业服务