京东笔试 100 36 东哥给个机会

第一题     合唱团   单调栈+二分查找
题目 大意: 将数组分成若干个数组 ,子数组内部从小到大排序,使所有子数组整体按非递减顺序,求子数组最大数量;
思路:当 当前数大于等于前一个数,加入到栈,当当前数小于栈顶节点,二分找到第一个大于栈的节点,将该节点与栈里后面节点合并,最后子数组个数为栈中节点个数
分享一个O(n)解法,膜拜大佬:https://www.nowcoder.com/discuss/232733





第二题:我是堆+Map ,每次删除关系最多的人,求大佬指点怎么做,反正我是傻了!!!!
最后,东哥给个机会!!!
#京东##笔试题目#
全部评论
膜拜大佬
点赞 回复 分享
发布于 2019-08-24 21:28
要是早点发出来就好了😂
点赞 回复 分享
发布于 2019-08-24 21:33
import sys import math n=int(input()) s=input().split(" ") s=[int(i) for i in s] f=s[:] f.sort() ans=0 ds={} df={} for i in range(len(s)): ds[s[i]]=True df[f[i]]=True if ds==df: ans+=1 ds={} df={} print(ans)这个是我的,全ac
点赞 回复 分享
发布于 2019-08-24 21:56
链接里的那个思路对于 7 8 1 3 8 9 4 8 是不是不行
点赞 回复 分享
发布于 2019-08-24 22:29
第一题看到一个大佬的思路,直接比较两个数组前i项的和就行,复杂度o(n)
点赞 回复 分享
发布于 2019-08-24 22:32

相关推荐

点赞 28 评论
分享
牛客网
牛客企业服务