莉莉丝9.6笔试讨论

a了2.3
第一题百分之80,复杂度已经的O(n)了,要O(logn)能想到就是递归,想了半天,太麻烦了放弃了
class Solution:
    def formatList(self , head ):
        if not head:
            return head
        index=head
        head=head.next
        i=index
        flag=0
        while head:
            if flag==0:
                i.next=head
                i=i.next
                head=head.next
                flag=1
            else:
                a=head
                head=head.next
                a.next=index
                index=a
                flag=0
        return index
第二题Ac
class Solution:
    def sortList(self , head ):
        dic={}
        while head:
            if head.val in dic:
                dic[head.val]+=1
            else:
                dic[head.val]=1
            head=head.next
        a=sorted(dic.items())
        k=[]
        for ass in a:
            k.append([ass[0],ass[1]])
        res=ListNode(0)
        now=res
        num=max(dic.values())
        for i in range(num):
            for item in k:
                if item[1]>0:
                    now.next=ListNode(item[0])
                    now=now.next
                    item[1]=item[1]-1
        return res.next
第三题百分之50%,这种题都能超时,算了,累了,休息
num = int(input())
data = []
for i in range(num):
    a = input().split()
    if 'in' == a[0]:
        data.append([int(a[1]), a[2]])
    else:
        if not data:
            print(-1)
            continue
        else:
            a[1]=int(a[1])
            if a[1]==0:
                print(data.pop(0)[1])
                continue
            else:
                flag=0
                for item in data:
                    if a[1]==int(item[0]):
                        print(item[1])
                        data.remove(item)
                        flag=1
                        break
                if flag==0:
                    print(-1)




#莉莉丝游戏##笔经#
全部评论
第三题自己实现一个节点struct Node, 使用一个双链表list,外加一个100大小数组arr,下标就是t类型,数组arr元素是队列,队列元素是指针 插入的时候插入双链表尾和对应的队列arr[t]; 取出的时候p=0,取链表头然后读取节点类型t,弹出arr[t]的队首 p!=0,取arr[p]队首,并移除该指针指向的元素
1 回复
分享
发布于 2021-09-06 21:18
这么多3,看来我又挂了😭😭
2 回复
分享
发布于 2021-09-07 03:35
滴滴
校招火热招聘中
官网直投
第一题用c++ O(n)就过了
点赞 回复
分享
发布于 2021-09-06 21:02
我第三题死活15%已经麻了
点赞 回复
分享
发布于 2021-09-06 21:05
第三题用HashMap<String,LinkedList<String>>不知道卡哪里了,快烦死我了
点赞 回复
分享
发布于 2021-09-06 21:07
第三题
点赞 回复
分享
发布于 2021-09-06 21:39
第一题a,第二题54,第三题74能过吗
点赞 回复
分享
发布于 2021-09-06 21:56
前两道100,第三道应该是做错了,0
点赞 回复
分享
发布于 2021-09-06 22:10
第二题和第三题ac,第一题sql不会写😂
点赞 回复
分享
发布于 2021-09-06 22:16
第三题两个map+一个vector 100% 一个map<int,queue<string>>记数字x对应的字符串队列,一个vector<int>记数字x,一个map<int,int>记数字x对应的下标被用过多少次,方便在out 0的时候找到应该输出的数字x对应的字符串
点赞 回复
分享
发布于 2021-09-06 22:20
有无大佬贴一个第三题的C++的代码,感谢
点赞 回复
分享
发布于 2021-09-06 22:30
前端,就一道编程题。但是,那道题的输入输出没法做,它把函数的两个参数放在一行输入了,没法split。
点赞 回复
分享
发布于 2021-09-06 22:39
第一题就遍历一次都超时。。百分之80.
点赞 回复
分享
发布于 2021-09-06 23:11
第三题C++用链表list存消息,用哈希表存装有list迭代器的队列。
点赞 回复
分享
发布于 2021-09-06 23:20
1. 90% 2. 100% 3. 75%
点赞 回复
分享
发布于 2021-09-06 23:25
第三题我的思路是: 1. 在一个双向链表中记录当前值所在队列的索引,out 0 就转化为了 out k 2. 在多级队列中除了记录值,还要记录每个值在链表中的位置(out k 时删去链表中的对应信息) 总之这一题跟 LRU缓存 很像,那一题搞定了,这一题基本就拿下了 可惜昨天时间不够了,明明已经有思路了,哭唧唧
点赞 回复
分享
发布于 2021-09-07 09:23
楼主接到面试通知了吗
点赞 回复
分享
发布于 2021-09-08 13:41
第一题超时的都是因为生成了循环链表吧,忘记把尾节点的的next设为null
点赞 回复
分享
发布于 2021-09-08 15:42
有没有同学接到面试哇
点赞 回复
分享
发布于 2021-09-08 20:03
有无面试通知的同学
点赞 回复
分享
发布于 2021-09-09 14:01

相关推荐

2 8 评论
分享
牛客网
牛客企业服务