当前位置: 首页 > article >正文

Golang | Leetcode Golang题解之第464题我能赢吗

题目:

题解:

func canIWin(maxChoosableInteger, desiredTotal int) bool {
    if (1+maxChoosableInteger)*maxChoosableInteger/2 < desiredTotal {
        return false
    }

    dp := make([]int8, 1<<maxChoosableInteger)
    for i := range dp {
        dp[i] = -1
    }
    var dfs func(int, int) int8
    dfs = func(usedNum, curTot int) (res int8) {
        dv := &dp[usedNum]
        if *dv != -1 {
            return *dv
        }
        defer func() { *dv = res }()
        for i := 0; i < maxChoosableInteger; i++ {
            if usedNum>>i&1 == 0 && (curTot+i+1 >= desiredTotal || dfs(usedNum|1<<i, curTot+i+1) == 0) {
                return 1
            }
        }
        return
    }
    return dfs(0, 0) == 1
}

http://www.kler.cn/news/342525.html

相关文章:

  • c#中多态的实例应用说明
  • PHP智慧餐饮新风尚点餐系统
  • vscode 中显示 pnpm : 无法加载文件 C:\Users\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本
  • pytorch导入数据集
  • Python快速编程小案例——打印蚂蚁森林植树证书
  • YOLOv11训练自己数据集_笔记1
  • ReactRouter快速梳理
  • 【linux 多进程并发】0201 Linux进程fork内存空间,父子进程变量内存地址居然是一样的
  • 潜水打捞系统助力,破解汽车打捞难题
  • 2-118 基于matlab的六面体建模和掉落仿真
  • 继承--C++
  • Spring Boot洗衣店订单系统:智能库存管理
  • QT调用最新的libusb库
  • RelationGraph实现工单进度图——js技能提升
  • 使用 C# 构建强大的网络爬虫:从基础到高级功能实现
  • 【教学类-36-10】20241010职业抽卡(midjounery-niji)(涂色、裁剪、游戏)
  • 【VUE】Vue的diff算法和React的diff算法
  • Biomamba求职| 国奖+4篇一作SCI
  • 高并发系统如何保证数据一致性
  • Python自然语言处理之snownlp模块介绍、安装与常见操作案例