华为德科OD笔试

素数之积

给定一个整数 ,求该数是否为两素数之积。

一开始我试图用筛选法打表把所有素数打出来,因为我觉得直接暴力枚举并检测素数肯定会超时。结果发现光是打出来的表就直接爆内存了(
因为两个因子必定一个是小于等于 ,另一个大于等于 , 于是就把打表范围降到 ,表长度
然后在表中枚举小于等于 的因子,判断另一个因子是否素数。
判断另外一个因子是否素数时也可以利用打表信息,当该因子小于等于 是可以利用二分法直接查找是否在表中。
大于 时,记该因子为 ,因为 ,所以,因此可枚举表中 判断是否包含 的因子,没有则为素数。
因此最坏时间复杂度为

其实后来想了想,枚举 的因子需要 ,检测该因子是否素数需要 ,整体时间其实也是
实际测试 时打表大概 2ms,枚举 10ms,完全不会超时。

n = int(input())

#### 打表 ####

import bisect

primes = [...]  #表略

sqrt = n ** 0.5

for p in primes:
    if p > sqrt:
        print(-1, -1)
        break
    if n % p == 0:
        div = n // p
        if div <= primes[-1]:
            if primes[bisect.bisect_left(primes, div)] == div:
                print(p, div)
                break
        else:
            is_prime = True
            sqrt2 = div ** 0.5
            for p2 in primes:
                if p2 > sqrt2:
                    break
                if div % p2 == 0:
                    is_prime = False
                    break
            if is_prime:
                print(p, div)
                break            
else:
    print(-1, -1)

#### 枚举 ####

def is_prime(n):
    if n == 1:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

for i in range(2, int(n ** 0.5) + 1):
    if n % i == 0:
        if is_prime(i) and is_prime(n // i):
            print(i, n // i)
            break
else:
    print(-1, -1)

工厂流水线

给定 条流水线与 个作业,每个作业的作业时间 。流水线总是优先选取作业时间最短的作业进行工作。求总工作时长。

堆就完事了。不过输入数据巨坑, 的数量会多于 ,卡了我半天。

import heapq

m, n = map(int, input().split())
t = list(map(int, input().split()))[:n]

t.sort()

h = t[:m]

heapq.heapify(h)

for i in range(m, n):
    heapq.heapreplace(h, h[0] + t[i])

print(max(h))

完全波形信号

给定一个由 0 和 1 组成的字符串。一个信号定义为由 0 开头和结尾,中间不会有连续两个 0 的一个子串。求输入中最长的 0、1 交替的波形信号。

直接正则替换,能一行解决的绝对不写第二行(

import re

s = '0' + input() + '0'

waves = re.sub(r'0{2,}', '0|0', s).split('|')[1:-1]

ans = ''

for w in waves:
    if all(w[i] != w[i + 1] for i in range(len(w) - 1)):
        ans = max(ans, w, key=len)

print(ans or -1)
#华为笔试##外企德科人力资源服务##华为OD#
全部评论
这要是不知道素数是啥,咋办
1 回复 分享
发布于 2022-06-27 20:25
楼主yyds,借楼谢谢! 深圳急聘华为OD:10+2起步(211以上+2),一本以上私聊。拿到offer的同学帮点赞。 另资源互换捞人私聊。
点赞 回复 分享
发布于 2022-07-22 16:52

相关推荐

个人而言,秋招最重要的是心态。我还是建议大家在自己有实力的前提下不要太早向大环境妥协,可以降低期望但不要下调底线。这几年求职大家都不容易,网申测评只是基础,等待选择与未来规划带来的内耗是根本。有工作最好就拖着,跟hr维持好关系,不到最后一刻不要拒掉手里的机会。沟通和社交能力在面试乃至工作中会越来越值钱,甚至比技术更重要🌞运气还不错的小破二本来给大家分享一些个人面试小tips~🤔关于未知领域在完全没有接触过的行业或岗位面试中,建议先讲明自己的动机,对哪些事情感兴趣,以此正面回应hr的提问。我一般用的是“移花接木”大法^ω^,从校园实习经历和自己的兴趣爱好中找出与岗位相匹配的技能。比如一次咨询公司的面试中(几乎没接触过)我在面试过程中就会讲:喜欢打辩论且发现辩论和咨询工作之间有共通之处,于是开始尝试商赛,发现确实很喜欢这种工作模式,可以扩展我的分析技能,解决问题的能力…👀关于实习深挖除了给自己脸上贴金,着重讲述参与过的项目和可量化的结果数据外,要把dirtywork给上一个层次。另外建议大家给自己打造一个人设orz,我在hr行政这类职能岗位面试中说自己“喜欢成人达己”;在运营策划这类岗位面试中说自己“边界感不强,辐射范围很大,思维灵活又非常开放”;在销售岗位说自己“善于换位思考,热衷提出解决方案,传递价值”……当然啦,我本身就具备这些特质,只是在面试过程中放大了侧重点。像产品这种我完全没接触过的,就主要在谈“校园合作官经历中收获的技能和产品技能的可迁移性”,说我正在用AI自学+研发一个产品,目前暂定是app…🌈关于压力测试我保持双赢谈判的心态!努力让面试官觉得选择你这个候选人超值不录用就亏了,而非表现出求求你们录取我吧我什么都可以学我什么都愿意做的这种弱势姿态。避免对抗性,把语境拉到自己的领域来构建优势,表达对贵司的赞美与亲近。面试官可能会对你的价值观提出挑战,这时候千万不要破口大骂^*^,请委婉并坚定地论述自己立场。我好几次被问到你为什么喜欢这个行业这份工作/你认为你的经历和它契合么/你在这里的职业规划是什么/你遇到的最大挫折;可是这类问题很抽象,我才21岁,还没有在这里工作过,我哪知道未来要怎么样?&nbsp;这种情况我会联系相关经历来论述自己的思维模式,根据客观优缺点来谈。(我的学历不太好我希望靠工作经历来弥补…五年内深耕吃透这个岗位如果发展受挫会考虑留学来提升学历)🗣️关于无领导小组面试介于每场群面我都是学历最烂的那个,也就在开场持观望态度。大佬们剑拔弩张的话不建议硬当leader,但该把握的时机一定要把握,及时破冰,提出建议,在钻死胡同时调转方向…分享一点作弊小技巧ε-(´∀`;&nbsp;),如果讨论环节的题目实在过于刁钻一头雾水的话,第一时间将题目复制到word上然后共享屏幕,“我根据题目和大家的建议罗列了一下,这边共享给大家我来编辑吧”&nbsp;然后根据他们的讨论内容编辑内容做出思维导图,大概率可以顺理成章作为汇报人总结各方观点提出解决方案。总比全程摆烂不参与讨论要好。 #25届秋招总结#&nbsp;&nbsp;#非技术面试记录#&nbsp;&nbsp;&nbsp;#你觉得哪一届的校招最难?#&nbsp;&nbsp;#牛客创作赏金赛#
查看8道真题和解析 25届秋招总结 非技术面试记录
点赞 评论 收藏
分享
9.27&nbsp;快手测开一面&nbsp;55min1.自我介绍2.介绍下实习的具体内容?3.实习这边,整个项目的交付流程是怎么样的?4.作为一个服务端QA,举个实习业务当中的接口例子,怎么设计,怎么执行?5.测试的时候会去看服务端代码吗?6.测试的时候关注代码覆盖率吗?7.实习的时候,涉及到具体压测的时候,目的是怎么样呢?8.压测的时候,具体会关注机器的哪些指标?除了CPU之外呢?9.实习小游戏的玩法是怎么样的?10.场景题:假设小游戏的概率需要你测试,假设某个概率模型配的是1%,这个概率需要测试,你怎么来测?11.上个问题没回答到点上,继续:抛开实习的具体业务,假设现在一个概率是0.001,一个概率是0.002,你需要保证线上也是这个概率,这个概率模型你怎么去测试?12.假设你需要构造100W次的数据,比如某个接口要请求100W次,一次请求30ms,那你100W次要测试很长时间,可能一两天,你要怎么优化呢?(没回答上来,卡了有两分钟,面试官说多线程)13.SQL:student表,name、subject、score三个字段,选取所有科目成绩都大于80分学生的名字。(然后面试官给我主动优化了下)14.Redis支持哪些数据类型?15.实际项目中用过Redis吗?Redis使用的优点和缺点是什么?16.百度这边测试对你最大的成长是什么?17.实习有开发过什么工具吗?为什么这块需要提效,你觉得痛点是什么?(针对于实习问的)18.算法:LeetCode88.合并两个排序的数组。19.我看你是跨专业的,为啥找测开?20.你学习途径是什么?因为感觉跨专业要学的内容还是挺多的21.反问10.14&nbsp;快手测开二面&nbsp;60min&nbsp;(感觉二面才是主管)1.自我介绍2.什么时候开始准备转码的?为什么?3.从开始转码,到实习之前的,整个学习的过程介绍一下?4.实习之后,再回过头来看之前学习的东西,有什么新的想法和视角吗?5.你觉得你能拿到百度的offer实习,是因为自己什么方面比别人有优势?6.先问问了哪些公司在流程,然后让我说说快手在我这排在哪里?7.问了我哪里人,然后问了些生活问题。8.聊聊实习的业务,在这个APP里负责哪些方面的测试?9.百度没有自己的压测平台吗(因为我说我就是用Jmeter压的)?压测有几轮?机房有关注吗?这个APP的日活有多少?10.假如服务器在国外的话,压测时候网络会有什么延迟吗?11.压测会涉及到使用很多的用户的账号吗?因为社交类型产品可能会有几万,几十万个用户请求?12.有没有写过自动化测试的case?13.接口测试,除了正常的测试之外,还会涉及到哪些方面的测试?会涉及到Redis和Mysql数据一致性的测试吗?14.了解故障注入测试吗?15.有没有了解过前端H5或者客户端的测试吗?现在的测试团队有没有负责过什么质量提效方面的工作?16.有没有了解过你mentor他们的OKR?17.实习这边的线上问题基本上是在什么环节出现的?自己的测试有没有出现过线上问题?18.SQL:用户表User_List,grp、id、age三个字段。(1)求每个组的最大年龄&nbsp;(2)求每个组(grp)内年龄(age)最大的id19.算法:LeetCode136.找到唯一的数字。然后说思路20.反问业务。然后面试官给我介绍了之后,还给我说了很多建议,很真诚。10.18&nbsp;快手测开三面&nbsp;60min1.自我介绍2.五句话以内介绍下目前实习负责的项目3.你觉得你实习这个业务,测试的重点是什么?4.你们这边接口是什么类型?对任意一个接口的测试用例怎么设计?(第一次没有说全,只说了正向的)5.简历上的服务端代码Diff是什么?怎么保证这些代码Diff的覆盖率?6.对于不需要封装接口的代码你怎么进行测试?(因为我刚才说的都是一些有接口的代码,这里问我比如RPC这种)7.遇到问题,怎么把这些信息给到开发,能定位什么程度?8.实习经历的收获?一些简历上写的东西指什么9.你觉得双端的测试重点是什么?或者说测试方法,就是说依赖于Android或者IOS这种本身设备的一些不同10.实习中在质量提效方面做了什么事情?有什么理解?11.接口自动化做过吗?12.为什么转码?为什么不留百度还要继续出来找工作?13.职业规划?怎么保持新事物,就是对本行业的一些技术前瞻的了解?14.算法:LeetCode680.验证回文字符串2&nbsp;&nbsp;然后说思路15.反问。然后面试官又问了些生活问题。最后说HR这边保持联系。 整体来说快手的面试还是有点难度的,同测开岗位和别的大厂比的话。最后三面下午结束之后,晚上也是直接进入录用评估。然后就一直等到现在啦。。。主站主站你快点开吧,别泡了,东子投递到offer流程历经73天,快手投递到现在63天了,怕不是要破我东哥记录了。最强耐泡王#牛客创作赏金赛##面经##快手校招##快手##秋招##测试开发#
查看56道真题和解析 牛客创作赏金赛
点赞 评论 收藏
分享
评论
5
28
分享
牛客网
牛客企业服务