3.8 VIVO笔试题

第一题,生产手机数目,AC
class Solution:
    def solution(self , n ):
        # write code here
        dp = [0] * (n+1)
        dp[1] = 1
        cur = 2
        for i in range(2, n+1):
            for j in range(i):
                dp[cur + j] = i
                if cur+j >= n:
                    break
            cur += i
            if cur > n:
                print(cur)
                break
        return sum(dp)
第二题,找出每位乘积等于N的最小数,过了70%
class Solution:
    def solution(self , n ):
        # write code here
        if n < 10:
            return 10 + n
        else:
            if self.is_zhishu(n):
                return -1
            else:
                yinzi = [2, 3, 5, 7]
                tmp = []
                while(n != 1):
                    for i in yinzi:
                        if n % i == 0:
                            n /= i
                            tmp.append(i)
                            break
                        elif i == 7 and n % i != 0:
                            return -1
                res = []
                cur = 1
                for i in tmp:
                    if cur * i < 10:
                        cur *= i
                        continue
                    else:
                        res.append(cur)
                        cur = i
                res.append(cur)
                res.sort()
                answer = 0
                w = len(res)-1
                for i in res:
                    answer += i * (10 ** w)
                    w -= 1
                return answer
    

    def is_zhishu(self, n: int)->bool:
        for i in range(2, n // 2):
            if n % i == 0:
                return False
        return True
第三题,相当于找出连接n次的数目,应该动态规划,时间不够了
class Solution:
    def solution(self , m , n ):
        table = [5, 7, 8]
        # write code here
        dp = [0] * (n + 2)
        dp[1] = 9
        dp[2] = 56
        dp[3] = 20 * table[0] + 28 * table[1] + 8 * table[2]
        if n <= 3:
            return sum(dp[m: n+1])
        else:
            pass


s = Solution()
res = s.solution(1, 2)
print(res)



#vivo##笔试题目#
全部评论
这里有最后一题的解法。https://zhuanlan.zhihu.com/p/95618813
1 回复 分享
发布于 2020-03-08 16:13
100%+100%+20%第三题返回测试用例就能拿个20%
1 回复 分享
发布于 2020-03-08 16:08
在世真龙!
点赞 回复 分享
发布于 2020-03-08 19:04
我第一天过,第二题写完回去一看,断网了,赶紧连热点,然后再扫码然后时间过来我日
点赞 回复 分享
发布于 2020-03-08 16:31
第二题我最后是这么想的,但是!!!!来不及了啊,给我十秒钟都可以啊🤣最后才想到,改完来不及粘贴了
点赞 回复 分享
发布于 2020-03-08 16:24
if n < 10:             return 10 + n //改成直接return -1就过了你信吗😂
点赞 回复 分享
发布于 2020-03-08 16:13
第三题没来得及做了 有大神讲一下思路么
点赞 回复 分享
发布于 2020-03-08 16:11
A了两题,第三题没时间搞了,看着又很复杂,直接 ''' return 0 ''' 过了20%,emmm
点赞 回复 分享
发布于 2020-03-08 16:10
第一题AC,第二题0.7,第三题0.7(LeetCode 351)估计是python卡常数时间了....
点赞 回复 分享
发布于 2020-03-08 16:09
第二题过了60。java本来想用并发流提高速度的。结果更慢,估计判题机单核,forkjoin起到了反作用
点赞 回复 分享
发布于 2020-03-08 16:08
第二题什么代码都不写,直接return -1都过了20%😂
点赞 回复 分享
发布于 2020-03-08 16:07
。。。怎么大家第二题都是70%啊....
点赞 回复 分享
发布于 2020-03-08 16:06
惹我第三题还在算.....应该是动态规划类似迷宫之类的......另外第二题我Ac80%?
点赞 回复 分享
发布于 2020-03-08 16:06
int main() {         // write code here         int n;         cin >> n;         vector<int> s;         for(int i = 9; i > 1; i--){             if(n % i == 0){                 s.push_back(i);                 n /= i;                 i = 10;             }             if(n == 1)                 break;         }                  if(n != 1)             cout << -1 << endl;         else{             stringstream aa;             sort(s.begin(), s.end());             for(unsigned i = 0; i < s.size(); i++){                 aa << s[i];             }             int sum = 0;             aa >> sum;             cout << sum << endl;         }              } 我第二题是求一个大于10的数的最小的因子组成的数,比如36,就输出49,因为4*9,我本地可以过,然后在它那一直说复杂度太高醉了
点赞 回复 分享
发布于 2020-03-08 16:06
最后一题靠异常情况和提供的1,2混了30%
点赞 回复 分享
发布于 2020-03-08 16:05
第三题神经病啊,真的不会
点赞 回复 分享
发布于 2020-03-08 16:05
和你的情况一样,1ac,2 ac70%,3 来不及随便写写
点赞 回复 分享
发布于 2020-03-08 16:04
话说多少分是过哇,我好像总共只有70多分,这一个小时写起来有点赶🤣
点赞 回复 分享
发布于 2020-03-08 16:04

相关推荐

点赞 评论 收藏
分享
04-10 11:02
已编辑
北方民族大学 全栈开发
“无名小卒,还是名扬天下?”我知道很多人都不觉得我能走到今天这一步,当然,也包括我自己。在我的人生里,有两部作品刻下了最深的烙印:《斗破苍穹》与《龙族》。它们总被人拿来对照:一边是萧炎的桀骜轻狂,一边是路明非的怯懦衰颓。有人说,天蚕土豆没见过魂天帝,但江南见过真凯撒。我时常觉得,自己就是那个衰小孩路明非。可路明非可以开挂,我不可以;我也无数次幻想过,能拥有萧炎那般年少轻狂的人生,可我没有他与生俱来的逆天天赋。我只是个平庸的普通人,一个看过《斗破苍穹》却开不了挂的路明非,只能一步一步往上爬。从我下定决心找实习的那一刻起,我就给自己定下了目标:“我一定要为字节跳动卖命.jpg”。萧炎有他的三年之约,我有我的两年半之约(其实是一年半)。2024.11.20,科大讯飞的第一封实习offer落进邮箱,我迈出了这场奔赴的第一步。2025.8.18,放弃百度转正的安稳机会,转身走进前路未卜的不确定里。我很感谢我在百度的mentor,是她从茫茫人海选中了我,给了我大厂实习的机会。即便有段时间我状态差、产出不理想,她依旧愿意认可我、希望我留下转正。2025.11.14,我选择走进字节跳动,以实习生的身份重新出发。2026.3.25&nbsp;-&nbsp;3.31,一周速通上海飞书,幸遇赏识我的伯乐,斩获Special&nbsp;Offer。被告知面试通过的那一刻,我的内心无比平静,就像这个offer本就该属于我。不是侥幸,是应得的。这一路,有人看轻过我的出身,不相信我能走到这里;也有人在我看不见前路的时候,替我举过灯。没有他们的鼓励与支撑,就没有今天站在这里的我。我看到了自强不息的激荡,那是一个双非的伟大乐章!我是雨夜迈巴赫,我要开启属于我的新篇章了。
在看牛客的本杰明很勇...:真心祝贺l总 我永远的偶像 我滴神
春招至今,你收到几个面试...
点赞 评论 收藏
分享
评论
5
11
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务