yoyozy:第二题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)
投递招商银行等公司10个岗位 >
0 点赞 评论 收藏
分享
千千miaow:第五题笔试时候没过,刚写出来,不知道能不能A,分享一下思路吧
例子给的是
4 3
1 0 0 0
逐行算出来是
1 1 1 1
1 2 3 4
1 3 6 10
观察一下每行最后一个数
1 = 1
4 = 4/1
10 = (4*5)/(1*2)
再多写几行
1 4 10 20
1 5 15 35
1 6 21 56
再看
20 = (4*5*6)/(1*2*3)
35 = (4*5*6*7)/(1*2*3*4)
56 = (4*5*6*7*8)/(1*2*3*4*5)
到这里规律已经很明显了
再试一下另外的输入
4 5
0 1 0 0
0 1 1 1 = 1
0 1 2 3 = 3/1
0 1 3 6 = (3*4)/(1*2)
0 1 4 10 = (3*4*5)/(1*2*3)
0 1 5 15 = (3*4*5*6)/(1*2*3*4)
再试一组有两个非0数的
4 5
1 1 0 0
1 2 2 2 = 1+1
1 3 5 7 = 4+3
1 4 9 16 = 10+6
1 5 14 30 = 20+10
1 6 20 50 = 35+15
把1换成2试试
4 5
2 2 0 0
2 4 4 4
2 6 10 14
2 8 18 32
2 10 28 60
2 12 40 100
和上面一个例子比比,每行最后全是二倍
就写到这儿了,差不多就这样
整个公式是个求和公式
(1) res = 0
(2) i from 0 to N-1
(3) res = (C(N+K-1-i)(K-1-i)*a[i] + res)%1000000007
(4) print res
//算法第三行里的C是排列组合里的组合
投递美团等公司10个岗位 >
0 点赞 评论 收藏
分享
投递阿里巴巴等公司10个岗位 >
0 点赞 评论 收藏
分享
地狱傀儡师007:第一题一模一样的思路,python只能过9%,哭了…
投递360集团等公司10个岗位 >
0 点赞 评论 收藏
分享
废柴201903231858484:蘑菇街面经好像都是一直问项目。。。好像那几个做自媒体(什么敖丙,3y之类的)的人全在蘑菇街,就特别爱问这些。。
投递蘑菇街等公司10个岗位 >
0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: