招行笔试题

求招行 3.27 笔试编程题的分析思路#招行笔试##招商银行#
全部评论
第二题AC代码,相当于计算最少有几个递增序列。 nums=[[4,1],[9,3],[5,5],[2,4],[2,1]] def solution(nums):     nums.sort(key=lambda x:(x[0],x[1]))     res=[nums[0]]     for num in nums[1:]:         found=False         for i in range(len(res)):             if num[0]>=res[i][0] and num[1]>=res[i][1]:                 res[i]=num                 found=True                 break         if found==False:             res.append(num)     return len(res) solution(nums)
2 回复 分享
发布于 2020-03-27 21:39
第二题做不出来啊,啥情况
点赞 回复 分享
发布于 2020-03-27 21:08
第一题也没想明白
点赞 回复 分享
发布于 2020-03-27 21:19
第二题最长子序列数量,第一题不为0的数组数量+1.。。
点赞 回复 分享
发布于 2020-03-27 21:19
第二题 wooden sticks
点赞 回复 分享
发布于 2020-03-27 21:24
第一题 鸽巢原理
点赞 回复 分享
发布于 2020-03-27 21:25
第二题用非支配排序
点赞 回复 分享
发布于 2020-03-27 21:27
第二题我用的贪心AC了
点赞 回复 分享
发布于 2020-03-27 22:43
我的思路,全A:    #每次筛选符合大于等于的棍子,保证递增顺序,不符合条件的放在一个数组递归。   T = int(input())   for t in range(T):     n = int(input())     length = [int(x) for x in input().split()]     weight = [int(x) for x in input().split()]     arr = list(zip(length, weight))     arr.sort()       def Find(arr):         print(arr)         if arr == []:             return 0         temp = []         last = arr[0]         for i in range(1, len(arr)):             if arr[i][1] >= last[1]:                 last=arr[i]             else:                 temp.append(arr[i])         return 1 + Find(temp)     print(Find(arr))
点赞 回复 分享
发布于 2020-03-28 10:24

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
评论
1
3
分享
牛客网
牛客企业服务