欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[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))