当前位置:网站首页>记忆化搜索+状态压缩leetcode.464
记忆化搜索+状态压缩leetcode.464
2022-06-09 12:29:00 【路Lu727】
public static boolean canIWin(int maxChoosableInteger, int desiredTotal) {
int[] dp=new int[1<<maxChoosableInteger];//某个状态下是否会赢
//总和小于目标,都会输
if(desiredTotal>(1+maxChoosableInteger)*maxChoosableInteger/2) return false;
return dfs(dp,0,maxChoosableInteger,desiredTotal,0);
}
static boolean dfs(int[] dp,int sum,int maxChoosableInteger,int desiredTotal,int state){
//如果当前状态已经遍历,返回
if(dp[state]!=0) {
if(dp[state]==1)
return true;
else return false;
}
//寻找未选择的数
for(int j=0;j<maxChoosableInteger;j++){
if((state&(1<<j))!=0) continue;
//如果该数满足条件则赢
if(sum+j+1>=desiredTotal){
dp[state]=1;
return true;
}
//否则判断是否会导致对方输
if(!dfs(dp,sum+j+1,maxChoosableInteger,desiredTotal,state|(1<<j))){
dp[state]=1;
return true;
}
}
//无法使自己赢或使对方输,那么自己输
dp[state]=-1;
return false;
}边栏推荐
- 浅析网络可视化分析技术
- How can PostgreSQL in k8s export query results and import them to the database on the local windows machine
- [new] control move + drag size + animation drag in WPF window
- 常见的数据分析误区
- [C language practice - exchange the values of two variables]
- MySQL Installer 方式安装MySQL
- Yunna RFID asset management, advantages of RFID asset management system
- 数据库day-2
- Idea merges the newly added modifications to the previous version
- 面试题 08.07. 无重复字符串的排列组合
猜你喜欢

云呐|固定资产如何管理比较好?公司固定资产怎么管理?

Method area of JVM runtime memory area family

【C语言练习——交换两个变量的值】

VMware esxi software installation steps in English

云呐|如何做好固定资产盘点?怎么盘点固定资产

IDEA将现在新增加的修改合并cherry pick到之前的版本

使用nodejs导出md/Markdown文档当中的图片到本地并替换原始图片链接为本地图片链接

Yunna RFID asset management, advantages of RFID asset management system

云呐|RFID资产管理,rfid资产管理系统优势

Idea merges the newly added modifications to the previous version
随机推荐
curl post请求携带请求头,传递接送参数数据的命令
JVM系列之执行引擎
云呐|RFID资产管理,rfid资产管理系统优势
精益产品开发体系最佳实践及原则
数据库的安装--mysql
Basic knowledge of modal analysis that engineers should know
【leetcode周赛记录】第296场周赛记录
C language -- single cycle linked list
周博磊《模型可解释性年度进展概述》20200805
Hype plagiarism, insider fraud common NFT scams and security suggestions on opensea
[C language practice - Young's matrix]
【C语言练习——打印整数二进制的奇数位和偶数位】
Record the troubleshooting of high program memory consumption
c语言--单循环链表
C语言--线性表--双链表
详解异步任务:函数计算的任务触发去重
C language stack -- chain stack
Comment résoudre le problème du réseau d'entreprise en accélérant la fusion du réseau Cloud pour le troisième anniversaire de la licence 5G?
【C语言练习——合并两个有序序列】
[idea imports gradle project and starts]