求小红书笔试最后一题python代码或者思路

只能a18%,有点难受#小红书##笔试题目##Python#
全部评论
leetcode354
点赞 回复 分享
发布于 2019-09-03 21:45
是求最长递增子序列吗?算法时间复杂度可以改进
点赞 回复 分享
发布于 2019-09-03 22:50
n = int(input()) baowu = [] for i in range(n):     baowu.append(list(map(int,input().split()))) def maxEnvelopes1(baowu):     '''     动态+二分查找     :param envelopes:     :return:     '''     baowu.sort(key=lambda x: (x[0], -x[1]))     nums = []     for i in baowu:         nums.append(i[1])     stack = [0] * len(nums)     maxl = 0     for x in nums:         low, high = 0, maxl         while low < high:             mid = low +(high - low) // 2             # 只要改这一行代码即可             if stack[mid] <= x:                 low = mid + 1             else:                 high = mid         stack[low] = x         maxl = max(low + 1, maxl)     return maxl print(maxEnvelopes1(baowu)) leetcode 354  只要改一行代码
点赞 回复 分享
发布于 2019-09-03 22:06
# 没测试对不对,写的时候把l1写成l2了,没发现。。。 N = int(raw_input()) li = [] for _ in range(N):     li.append([int(i) for i in raw_input().split()]) def helper(l1, l2):     m1, m2 = max(l1), max(l2)     if m1 < m2:         return -1     elif m1 > m2:         return 1     m1, m2 = min(l1), min(l2)     if m1 > m2:         return 1     elif m1 == m2:         return 0     return -1 li.sort(cmp=helper) res = 1 for i in range(1, len(li)):     if li[i][0] >= li[i-1][0] and li[i][1] >= li[i-1][1]:         res += 1 print(res)
点赞 回复 分享
发布于 2019-09-03 21:50
from functools import cmp_to_key class Solution(object):     def maxEnvelopes(self, envs):         def liss(envs):             def lmip(envs, tails, k):                 b, e = 0, len(tails) - 1                 while b <= e:                     m = (b + e) >> 1                     if envs[tails[m]][1] > k[1]:                         e = m - 1                     else:                         b = m + 1                 return b             tails = []             for i, env in enumerate(envs):                 idx = lmip(envs, tails, env)                 if idx >= len(tails):                     tails.append(i)                 else:                     tails[idx] = i             return len(tails)         def f(x, y):             return -1 if (x[0] < y[0] or x[0] == y[0] and x[1] > y[1]) else 1         envs.sort(key=cmp_to_key(f))         return liss(envs) if __name__ == "__main__":     N = int(input())     block = []     for _ in range(N):         tmp = list(map(int, input().split()))         block.append(tmp)     print(Solution().maxEnvelopes(block))
点赞 回复 分享
发布于 2019-09-03 21:47
用最长上升子序列的nlogn解法。
点赞 回复 分享
发布于 2019-09-03 21:40

相关推荐

昨天 22:05
已编辑
门头沟学院 Web前端
我是2月23号开始投简历的,投出去基本没回应,到现在只有3场面试,之前已经错过了秋招,所以想争取春招冲一冲;我想请牛友们,各位佬,看看我的简历,春招可以冲中小厂吗?2月底投出去的简历基本直接被拒,惨~目前我的进度是八股文看了很多,刷了30+算法题(弱爆啦),场景题基本没碰可能会G,常见手撕题敲了一遍(记不住,大概率G);项目很可能经不住深度拷打,还在加强学习。如果屏幕前的牛友们愿意给出建议,请畅所欲言,我一定认真阅读。毕设也欢迎各位佬直接开喷,链接:https://github.com/bignosecss/reverse-roadmap---一周过去了,更新下这周的春招的投递情况吧。这周总共约了4场面试,都是小公司;面试八股很少,没有手撕和算法,问场景和项目里的细节比较多。一家面了之后没消息了,一家二面挂,另外两家面试体验非常棒,面试官还会解答没答上的问题,总体来说反馈比2月份多不少,要简历的也多了。在招聘网站上投了很多,大多未读和已读不回,或者要了简历不回复的。邮箱、官网的投递基本没有声响,大海里扔石头,没声儿。。。感觉今年春招真的很难了,投出去没有水花,有力气没处使;不管是小厂中厂,投出去大多没回应,倒是很多外包找。不知道大问题在哪,感觉简历写的也差不多,不知道怎么继续优化了。总之每天保持学习节奏,不停的投,坚持到春招结束,相信会有机会的!
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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