📜  Geeks编码挑战[GCC 2019] –三天编码挑战作者:GeeksforGeeks(1)

📅  最后修改于: 2023-12-03 15:00:53.589000             🧑  作者: Mango

Geeks编码挑战 - GCC 2019

Geeks编码挑战是由GeeksforGeeks主办的一项为期三天的编程比赛活动,旨在鼓励程序员通过解决实际问题来提高编码能力和算法水平。

活动详情
  • 时间:每年举办一次,2021年度时间待定
  • 地点:线上比赛
  • 参与人数:全球范围内的程序员均可参赛
  • 赞助商:2020年度赞助商为Amazon、Dell、Adobe等知名企业
活动规则
  • 比赛时间为72小时
  • 比赛中共有10道算法题目,难度包括初、中、高级
  • 参赛者每解决一道题目可以获得一定的分数
  • 获得最高总分数的参赛者将获得大奖
活动价值

Geeks编码挑战是一个绝佳的机会,让参赛者可以在限定时间内解决实际问题,挑战自己的编码能力和算法水平。通过此项活动,参赛者可以:

  • 提高编码和算法能力
  • 增强解决问题的能力
  • 学习如何在短时间内有效地解决问题
  • 锻炼应对竞争和压力的能力
代码片段
def maxProfit(prices: List[int]) -> int:
    if not prices:
        return 0
    n = len(prices)
    # dp[i][0]: 手上持有股票的最大收益
    # dp[i][1]: 手上不持有股票,并且处于冷冻期中的累计最大收益
    # dp[i][2]: 手上不持有股票,并且不在冷冻期中的累计最大收益
    dp = [[0] * 3 for _ in range(n)]
    dp[0][0] = -prices[0]
    for i in range(1, n):
        dp[i][0] = max(dp[i - 1][0], dp[i - 1][2] - prices[i])
        dp[i][1] = dp[i - 1][0] + prices[i]
        dp[i][2] = max(dp[i - 1][1], dp[i - 1][2])
    return max(dp[n - 1][1], dp[n - 1][2])