Golang | Leetcode Golang题解之第486题预测赢家

题目:

题解:

Go 复制代码
func PredictTheWinner(nums []int) bool {
    return total(nums, 0, len(nums) - 1, 1) >= 0
}

func total(nums []int, start, end int, turn int) int {
    if start == end {
        return nums[start] * turn
    }
    scoreStart := nums[start] * turn + total(nums, start + 1, end, -turn)
    scoreEnd := nums[end] * turn + total(nums, start, end - 1, -turn)
    return max(scoreStart * turn, scoreEnd * turn) * turn
}

func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}
相关推荐
codists14 分钟前
《使用Gin框架构建分布式应用》阅读笔记:p212-p233
笔记·golang·gin·编程人·codists·gin框架
南宫生29 分钟前
贪心算法理论基础和习题【算法学习day.17】
java·学习·算法·leetcode·链表·贪心算法
自信人间三百年1 小时前
数据结构和算法-动态规划(3)-经典问题
java·数据结构·算法·leetcode·动态规划
啦啦啦!1 小时前
2024年10月30日(双指针算法)
c++·算法·leetcode
爱上语文3 小时前
LeetCode每日一题
java·算法·leetcode
明月*清风3 小时前
【力扣专题栏】合并K个升序链表,3种解法讲解如何实现vector容器里面多个链表的合并?
算法·leetcode·链表
-白 泽-4 小时前
我开源了一个短视频应用(Go+React)|DouTok2.0 项目介绍
react.js·golang·开源
knoci4 小时前
【Go】-基于Gin框架的博客项目
后端·学习·golang·gin
Xiaoyu Wang6 小时前
Go语言八股(Ⅲ)
开发语言·后端·golang
书鸢12366 小时前
力扣每日一题合集
java·算法·leetcode