腾讯音乐 暑期实习 机器学习 20220407笔试

一、 三道编程题 每题 30分
1. 一个二进制字符串, 判断最少删除多少位,是2的整数次幂
我一开始还想转换成十进制,判断是不是2的幂,balabala的,其实没那么麻烦,二进制是2的幂当且仅当除了最高位外其余都是0,所以统计有多少1,删除除了最高位的就行了
通过100%
2. 有一个数组,每次选一个数减去x,共操作k次,需使最大值尽可能小,输出最大值。
直接暴力做的 60%, 没想出来怎么优化
3. k-size字符串表示,有k个连续的部分,比如‘aabbccc’是3-size:'aa', 'bb', 'ccc'.合法定义为,每部分长度至少为2,给定字符串长度n,和k-size的k,求有多少种符合条件的字符串(每个字符小写字母)
通过 30%
我觉得我想出来了,没时间实现了,而且可能细节有点问题。首先k-size,就挑k个部分,第一部分可以是26个字母中的任意一个,第二部分是与前一部分不一样的25个种的一个,剩下的同理,所有是26 * 25^(k-1),然后比如3-size,长度为9的话,三部分是 a b c的话,那么先放aa bb cc ,然后还空缺3个位置,在放字母,共有C_4^2+4种放法(3+1 = 4 这里的三是还剩三个位置, 3-1 = 2 这里的三是k) 相当于三个球有四个地方可以放挡板,其中挡板可以在同一个位置。
感觉没表述清楚,等待评论区大神

二、问答题 10分
判断二叉搜索树

(这题也出成编程题不好吗?)
#腾讯音乐##腾讯音乐娱乐##笔试题目##实习#
全部评论
三题90 100 100
2 回复 分享
发布于 2022-04-07 23:13
100 100 100
1 回复 分享
发布于 2022-04-08 10:07
2题用堆, 3题动态规划,不过为什么我没有显示过多少样例。。。
1 回复 分享
发布于 2022-04-07 21:57
100 100 50
1 回复 分享
发布于 2022-04-08 16:10
第二题 二分判断是否可行
点赞 回复 分享
发布于 2022-04-07 21:58
三题 10 0 100
点赞 回复 分享
发布于 2022-04-07 22:27
第二题把所有数取反 然后用堆存入 pop出来改值再push 第二题我思路就是把它拆成K个数的和为N-2K 相当于在每个K上分配两个数 但是太菜了没写出来 LZ我看你好多帖子分享 太牛了
点赞 回复 分享
发布于 2022-04-07 22:48
100 100 30
点赞 回复 分享
发布于 2022-04-07 23:21
我昨天网上也是看了半个小时才看懂,但是这道题后面还是想出来题解了。 仅供参考哈,使用的方法:回溯算法 class Solution{        int sum ; int numsOfStrings(int n, int k) { nums = 0; int count = 26; for (int i = 1; i < k; i++) { count = count * 25 % 1000000; } dfs(n, k, 0); return count * nums % 1000000; } void dfs(int n, int k, int sum) { if (n == sum && k == 0) { nums++; return; } for (int i = 1; i <= n; i++) { dfs(n, k - 1, sum + i); } } };
点赞 回复 分享
发布于 2022-04-08 09:09
100 100 30,我的问答是设计大文件传输系统😂
点赞 回复 分享
发布于 2022-04-08 10:47

相关推荐

点赞 评论 收藏
分享
评论
2
17
分享
牛客网
牛客企业服务