[2021秋招笔试记录]哔哩哔哩_9.4_算法
程序员文章站
2022-07-14 13:05:55
...
编程题
题目一
求最长回文字串
题目二
数组的最大连续和
题目三
大鱼吃小鱼:
一次操作中,体积大的鱼会吃掉后面第一个比它小的鱼,
如[6,5,4]一次操作后只剩6,6吃5,5吃4
问几次操作后,鱼的数量才不变?
输入:
3(N)
1,2,3
输出:
0
输入:
6
4,3,2,3,2,1
输出:
2
[4,3,2,3,2,1] --> [4,3] -->[4]
AC的代码
def fishGame(sizes):
if sorted(sizes) == sizes:
return 0
if sorted(sizes)[::-1] == sizes:
return 1
newSize = []
while sizes:
i = 0
while i < len(sizes)-1 and sizes[i+1] < sizes[i]:
i += 1
newSize.append(sizes[0])
sizes = sizes[i+1: ]
res = 1+fishGame(newSize)
return res
N = int(input())
data = list(map(int, input().split(' ')))
print(fishGame(data))
上一篇: 栈与循环队列
下一篇: 哔哩哔哩:笔试题(20190910)