4.11网易互娱服务端笔经

四道题情况是100%,100%,0%,80%。
1.九进制加法,AC

"""
在太空深处,生活着这样一群外星人,他们左手有4个手指,右手有5个手指,所以自然地,他们习惯于采用9进制记数。
不过,这些外星人还没有点亮“计算机”科技,所以向地球上的你发出了求助,希望你帮他们设计一款可以用来完成9进制加法的程序。
"""
#
# 接收两个表示9进制数的字符串,返回表示它们相加后的9进制数的字符串
# @param num1 string字符串 第一个加数
# @param num2 string字符串 第二个加数
# @return string字符串
#
class Solution:
    def add(self, num1, num2):
        # write code here
        len1 = len(num1)
        len2 = len(num2)
        i = len1
        j = len2
        tmp = 0
        jinwei = 0
        firstpart = ''
        secondpart = ''
        if '.' not in num1:
            if '.' not in num2:
                pass
            else:
                secondpart = num2.split('.')[1]
                j=num2.rfind('.')
        else:
            if '.' not in num2:
                secondpart = num1.split('.')[1]
                i=num1.rfind('.')
            else:
                # 都包含小数位,先计算小数位部分
                i=len1;j=len2
                size1=i-num1.find('.')
                size2=j-num2.find('.')
                minsi***(size1,size2)
                i-=1
                j-=1
                while minsize!=size1:
                    size1-=1
                    tmp = int(num1[i]) + jinwei
                    jinwei = tmp // 9
                    secondpart += str(tmp % 9)
                    i -= 1
                while minsize!=size2:
                    size2-=1
                    tmp = int(num2[j]) + jinwei
                    jinwei = tmp // 9
                    secondpart += str(tmp % 9)
                    j -= 1
                while num1[i] != '.' and num2[j] != '.':
                    tmp = int(num1[i]) + int(num2[j]) + jinwei
                    secondpart += str(tmp % 9)
                    jinwei = tmp // 9
                    i -= 1
                    j -= 1

                secondpart=secondpart[::-1]
        i-=1
        j-=1
        # 计算整数部分
        while i>=0 and j>=0:
            tmp=int(num1[i])+int(num2[j])+jinwei
            firstpart+=str(tmp%9)
            jinwei=tmp//9
            i -= 1
            j -= 1
        while i>=0:
            tmp = int(num1[i]) + jinwei
            jinwei = tmp // 9
            firstpart += str(tmp % 9)
            i -= 1
        while j>=0:
            tmp = int(num2[j]) + jinwei
            jinwei = tmp // 9
            firstpart += str(tmp % 9)
            j -= 1
        if jinwei:
            firstpart+=str(jinwei)
        firstpart=firstpart[::-1]
        if secondpart=='':
            return firstpart
        else:
            return firstpart+'.'+secondpart

if __name__ == '__main__':
    so=Solution()
    print(so.add('0.25','0.75'))

2.聪明的厂长,AC

"""
厂长阿雄需要根据工厂里每个员工的劳动技能等级来分配每天的工作任务。
一个工作任务只能由劳动技能等级大于等于该任务难度的员工来完成,且同一天里一个员工只能对应一个工作任务,一个工作任务只能由一个员工来完成。
员工i的劳动技能等级由整数Wi来表示,工作任务i的任务难度由整数Ti,来表示。
聪明的你能帮助阿雄分配今天的工作任务么?
"""
n=int(input())
w=list(map(lambda x:int(x),input().split(' ')))
t=list(map(lambda x:int(x),input().split(' ')))
m=int(input())

# 排序之后,由劳动技能最小的员工先选择任务,剩下可选的任务交给下一个较大劳动技能的员工选择
# 累乘每次可选择的任务即为所求
w.sort()
t.sort()
choice=0
index=0
flag=False
res=1
for i in w:
    while not flag and i>=t[index]:
        choice+=1
        index+=1
        if index==len(t):
            flag=True
    res*=choice
    choice-=1
print(res%m)

3.组队,不会,求解答。
4.整理快递盒,80%,只排了序,应该还需要使用最长单调递增子序列的算法求解,厚脸皮贴下代码。

"""
日常收快递留下一堆快递盒占地方。现在有N个快递盒,盒子不做翻转,每个盒子有自己的长宽高数据,
都以整数形式(L,W,H)出现。将小盒子整理到大盒子里面(小盒子的长宽高都小于大盒子)。
要求快递盒一个套一个(即,打开一个大盒子最多只能看到一个小盒子),最多能整理多少个盒子打包到一起。
"""
# @param boxes int整型二维数组
# @return int整型
#
class Solution:
    def maxBoxes(self, boxes):
        # write code here
        if boxes==[]:
            return 0
        tmp = []
        sort_box = []
        boxes = sorted(boxes, key=lambda x: x[-1])
        tmpboxes = []
        h = boxes[0][-1]
        for box in boxes:
            if box[-1] == h:
                tmp.append(box)
            else:
                tmpboxes.extend(sorted(tmp, key=lambda x: x[-2]))
                tmp = []
                tmp.append(box)
                h = box[-1]
        tmpboxes.extend(sorted(tmp, key=lambda x: x[-2]))
        tmp = []
        boxes = tmpboxes
        tmpboxes = []
        # print(boxes[0])
        h = boxes[0][-1]
        w = boxes[0][-2]
        for box in boxes:
            if box[1] == w and box[2]==h:
                tmp.append(box)
            else:
                tmpboxes.extend(sorted(tmp, key=lambda x: x[0]))
                tmp = []
                tmp.append(box)
                h = box[-1]
                w = box[-2]
        tmpboxes.extend(sorted(tmp, key=lambda x: x[0]))
        boxes = tmpboxes

        current=boxes[0]
        res=1
        for box in boxes:
            if current[0]<box[0] and current[1]<box[1] and current[2]<box[2]:
                res+=1
                current=box
            else:
                pass
        return res

if __name__ == '__main__':
    so=Solution()
    print(so.maxBoxes([[5,4,3], [5,4,5], [6,6,6]]))
#网易互娱笔试##网易互娱##笔试题目##笔经##技术服务岗#
全部评论
有面试通知了吗
1 回复 分享
发布于 2020-04-13 22:10
收到二面了吗
点赞 回复 分享
发布于 2020-04-30 19:01
最后一题排序加bfs就可以了
点赞 回复 分享
发布于 2020-04-12 23:39
我细节处理太差了,9进制加法87.5,第二题a了,第三题觉得麻烦没写,第四题90😐感觉互娱这笔试是真笔试,之前美团华为笔试都跟闹着玩一样。
点赞 回复 分享
发布于 2020-04-12 17:08
感谢大佬分享,我就做了两道还是4040,学习学习😂
点赞 回复 分享
发布于 2020-04-12 15:29
老哥,你好,我没参加过面试,想问一下,算法题不都是首先吗?你这个是怎么知道通过多少案例的
点赞 回复 分享
发布于 2020-04-12 01:23
最后一题的代码         l 为盒子数 ta是盒子数组 nums := make([]int, l) nums[0] = 1 max := 1 for i := 1; i < l; i++ { nums[i] = 1 for j := i - 1; j >= 0; j-- { if ta[j][0] < ta[i][0] && ta[j][1] < ta[i][1] && ta[j][2] < ta[i][2] { if nums[i] < nums[j]+1 { nums[i] = nums[j] + 1 if nums[i] > max { max = nums[i] break } } } } } return max
点赞 回复 分享
发布于 2020-04-12 00:40

相关推荐

07-25 11:26
清华大学 Java
打开电脑,思绪又回到了7月份刚开始的时候,感觉这个月过的如梦如幻,发生了太多事,也算是丰富了我本就是平淡的人生吧太早独立的我习惯了一切都是自己做决定,拥有绝对的决定权,而且永远不会听取别人的建议。我就是那个恋爱四年出轨的男主啦,感觉既然在牛客开了这个头,那我就要做个有始有终的人。从我出轨到结束再到和女朋友和好如初真的太像一场梦了,短短的一个月我经历了太多,也成长了很多,放下了那些本就不属于我的,找回了那些我不该放弃的。我的人生丰富且多彩,但人不能一直顺,上天总会让你的生活中出点乱子,有好有坏,让你学会一些东西,让你有成长。我和女朋友的恋爱四年太过于平淡,日常除了会制造一些小浪漫之外,我们的生活...
段哥亡命职场:不得不说,我是理解你的,你能发出来足见你是个坦诚的人,至少敢于直面自己的内心和过往的过错。 这个世界没有想象中那样非黑即白,无论是农村还是城市,在看不见的阴影里,多的是这样的事。 更多的人选择站在制高点去谩骂,一方面是社会的道德是需要制高点的,另一方面,很多人不经他人苦,却劝他人善。 大部分的我们,连自己生命的意义尚且不能明晰,道德、法律、困境,众多因果交织,人会迷失在其中,只有真的走出来之后才能看明白,可是没走出来的时候呢?谁又能保证自己能走的好,走的对呢? 可是这种问题有些人是遇不到的,不去追寻,不去探寻,也就没了这些烦恼,我总说人生的意义在过程里,没了目标也就没了过程。 限于篇幅,没法完全言明,总之,这世界是个巨大的草台班子,没什么过不去了,勇敢面对,革故鼎新才是正确,祝你早日走出来。查看图片
点赞 评论 收藏
分享
机械打工仔:不管啥专业,找工作改简历的第一课先把你那排版改了,简历上不要写个人简历四个字,找你要简历的谁不知道这个是简历?而且还占那么多空间,直接把自己名字和基础信息写上面,整体字体大一些。 还有这种经典两页简历一页大空白,导出PDF的时候多了一页几乎全是白的你自己看着不难受吗随手的事为啥不能改掉呢,这是态度问题,你试想一下你是HR你打开简历看到格式都没调整过会是什么感受?你自己都不重视你的简历,HR更不会在意。 然后内容你那个做两年咖啡就别往里写了,简历在精不在多,你在往你的简历里打字的时候就要想好这东西对你要找的工作有没有帮助。自我评价写一行就行了,不如给专业技能单开一栏。核心课程均分90这个真别写了,把你上过的有用的专业课列出来也行。有很多地方废话很多的精炼一下,比如你校内项目第一个写的那些,全然没有重点。 好好修改一下,我看你内容也挺优秀的,别被一个随便做的简历耽误了,我一个同专业的打工人看了都揪心更别说一天看几百份简历的HR
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
4
13
分享

创作者周榜

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