题解 | 小红的三带一

小红的三带一

https://www.nowcoder.com/practice/f71aec371e30425dbe3cc509bafe4158

def solve(testcase):
    n = II()
    A = LII()

    dp = [0 for _ in range(n + 1)]

    def f(idx):
        c = Counter(A[idx - 3: idx + 1])
        if len(c) == 2 and sorted(list(c.values())) == [1, 3]:
            return True
        else:
            return False


    for i in range(3, n):
        dp[i + 1] = dp[i]
        if f(i):
            dp[i + 1] = fmax(dp[i + 1], dp[i - 3] + 1)
    
    print(dp[n])

for testcase in range(1):
    solve(testcase)

全部评论

相关推荐

活泼的代码渣渣在泡池...:哈哈哈挺好的,我也上岸美团了,不说了,我又接了一单
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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