代码渣渣居然第四范式编程题ak,兴奋之余发一下题解

今年秋招以来,终于有一次代码题ak了……忍不住发下题解,希望各位大佬指正……毕竟我就是个渣滓

这个好像是剑指offer里的一道比较经典的题目了,第一步当然是先print('false')一下,ac60%,然后本来在读数据的时候想用list(map(int, input(),split())),但是这样操作完之后,case正确率从60%降到了40%,猜测可能是这样超时了?于是只能投机取巧:
lst = input().split()
m = int(lst[0])
n = int(lst[1])
mat = []
hav = False
for i in range(m):
    lst = input()
    mat += [lst]
k = int(input())
hav = False
for l in mat:
    l1 = list(map(int, l.split()))
    if l1[0] > k or l1[-1] < k:
        continue
    else:
        for j in l1:
            if j == k:
                hav = True
                break
if hav:
    print('true')
else:
    print('false')
读数据的时候直接input(),然后后面再一行一行查,当然可以用二分查找更快,但是懒得写了【不会写】……反正ac了

思路:维护一个dict记录每个点的颜色,对于每条边的第二个点,如果之前没记录过这个点,就加进去,并且根据第一个点的颜色记录它的颜色;如果有,就看它前面那个点的颜色是不是符合要求,如果不符合直接输出No【为啥我用的list没用dict?因为没用过呗!不熟呗!】统计完所有边之后,因为题里说可能不连通,所以再看看点数是不是跟n一样多
感觉我写的代码有问题,sort的时候没考虑到可能一条边从编号大的点指向编号小的点的情况,不过反正ac了,不管了……
lst = input().split()
N = int(lst[0])
M = int(lst[1])
blist = []
p = []
pn = []
for i in range(M):
    lst = list(map(int, input().split()))
    blist += [lst]
blist.sort()
valid = True
for b in blist:
    if not b[0] in p:
        p += [b[0]]
        pn += [0]
    if not b[1] in p:
        p += [b[1]]
        if pn[p.index(b[0])] == 0:
            pn += [1]
        else:
            pn += [0]
    else:
        if pn[p.index(b[0])] == pn[p.index(b[1])]:
            valid = False
            break
if len(p) < N:
    valid = False
if valid:
    print('Yes')
else:
    print('No')
结束了!
#第四范式##题解#
全部评论
楼主 第二题的 测试用例N = 5, M = 7...下面却只输入了6行..你的和我的一样吗...emm
点赞 回复 分享
发布于 2018-09-09 17:27
def findNum(arr, k, m, n):     i, j = m-1, 0     while i >= 0 and j < n:         if arr[i][j] == k:             return True         if arr[i][j] > k:             i -= 1         else:             j += 1     return False m, n = map(int, input().split()) arr = [[] for _ in range(m)] for i in range(m):     arr[i] = list(map(int, input().split())) k = int(input()) print(findNum(arr, k, m, n)) 求帮忙看下这样有错吗..谢谢总是显示map(int)时的int报错
点赞 回复 分享
发布于 2018-09-09 16:52

相关推荐

dachang盒子:26届秋招必须有实习经历,建议找个实习过度下,同时项目重复率也比较高没有什么难点亮点,我这里有大厂真实的项目可以提供给你学习也可以给你包装大厂实习来提高你的竞争力,感兴趣的话可以私信我或者点我主页简介
你已经投递多少份简历了
点赞 评论 收藏
分享
2025-12-06 01:10
已编辑
哈尔滨工程大学 Java
一面问的真细,二面不知为啥变双机位。9.29快手主站平时怎么学习&nbsp;AI&nbsp;的,国内外知名大模型,实习公司都用的什么大模型,怎么评估效果的java池化思想,线程池构造方法的核心参数,线程池中阻塞队列注意事项,submit方法参数和执行逻辑,shutdown和shutdownnow,核心线程允许过期吗threadlocal底层,为什么key是弱引用,key回收了再get或者set这个value会怎样aqs,如何保证公平性java代理java堆划分,新生代还有别的晋升老年代的情况吗,什么时候触发gc,gc失败抛什么异常,如何排查oom,导出dump命令redis数据结构,哪个底层是跳表,和其他数据结构对比布隆过滤器会出现大key问题吗,你咋实现的布隆过滤器你怎么实现redis分布式锁,可重入,续期聚簇索引非聚簇索引select语句会加锁吗,怎么实现的不加锁undolog&nbsp;redolog&nbsp;binlog怎么能让select加锁,update这个范围加的什么锁,update一条呢手撕简单01背包,接雨水10.10快手主站意图识别用的哪个大模型,走到意图和rag的比例,faq是点击的吗自然语言怎么识别的gap一年干啥了,转正怎么样没跟组里提意向吗,研究生研究方向是传统算法吗,会大模型微调吗注册场景为什么用布隆过滤器,原理分布式锁底层的key怎么拼的,value里是什么redis持久化zset底层mysql索引结构,一个表三个字段有主键唯一索引和没索引的字段会有几个b+树,聚簇索引非聚簇索引存的啥无手撕
点赞 评论 收藏
分享
评论
点赞
11
分享

创作者周榜

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