博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
No.38 - LeetCode1025 动态规划-简单
阅读量:4060 次
发布时间:2019-05-25

本文共 508 字,大约阅读时间需要 1 分钟。

简单的动态转移: O(N*N)

反向思维,若当前数i为Alice一定输,则枚举因数k后,i+k一定为Alice必赢的局面。

// ShellDawn// LeetCode1025// No.40bool divisorGame(int N){    int dp[1005]; // 1为必赢,0为必输    memset(dp,0,sizeof(dp));    for(int i=1;i<=N;i++){        for(int j=i+1;j<=N;j++){            // 枚举因数k            int k = j - i;            if(j%k == 0 && dp[i] == 0) dp[j] = 1;        }    }    if(dp[N]) return true;    return false;}

这 题 还 有 个 规 律 \red{这题还有个规律} N为偶数Alice赢,奇数输,O(1)

可能正好碰巧了吧,跪求原因。

bool divisorGame(int N) {    return N%2 == 0;}

转载地址:http://anwji.baihongyu.com/

你可能感兴趣的文章
HTML基础
查看>>
Java IO
查看>>
Java NIO
查看>>
Java大数据:Hbase分布式存储入门
查看>>
Java大数据:全文搜索引擎Elasticsearch入门
查看>>
大数据学习:Hadoop入门学习书单
查看>>
大数据学习:Spark SQL入门简介
查看>>
大数据学习:Spark RDD操作入门
查看>>
大数据框架:Spark 生态实时流计算
查看>>
大数据入门:Hive和Hbase区别对比
查看>>
大数据入门:ZooKeeper工作原理
查看>>
大数据入门:Zookeeper结构体系
查看>>
大数据入门:Spark RDD基础概念
查看>>
大数据入门:SparkCore开发调优原则
查看>>
大数据入门:Java和Scala编程对比
查看>>
大数据入门:Scala函数式编程
查看>>
Remove Duplicates from Sorted List II
查看>>
Spiral Matrix
查看>>
Sudoku Solver
查看>>
Bitwise AND of Numbers Range
查看>>