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

小白水平理解面试经典题目LeetCode 1025 Divisor Game【动态规划】

1025 除数游戏

小艾 和 小鲍 轮流玩游戏,小艾首先开始。
最初,黑板上有一个数字 n 。在每个玩家的回合中,该玩家做出的动作包括:

  • 选择任意 x,使 0 < x < n 和 n % x == 0 。
  • 将黑板上的数字 n 替换为 n - x 。
    此外,如果玩家无法采取行动,他们就会输掉比赛。

当且仅当 小艾赢得游戏时返回 true ,假设两个玩家都发挥最佳。

例子

在这里插入图片描述

在大学某个自习的下午,小白坐在教室看到这道题。想想现年景一过,没有什么理由再不学习了。真是若对黄花孤负酒,怕黄花,也笑人岑寂。

这时候黑长直女神过来问:小白,你看到1025这道题了吗,怎么感觉看着很简单,但是理解起来很麻烦啊,这道题你有什么思路呢?

小白内心镇定:这机会不就来了吗,小美,《一起摇太阳》有机会一起去看看吧?
在这里插入图片描述
哦,不是,题目描述意思说的简单一些。

这种题目我们首先把他进行下条件梳理,

从这个问题来看,小艾可以从 1 to N 中选择一个数字,并且她必须选择优化她的获胜。同样,小鲍也会努力为自己赢得胜利。

考虑如果数字是 2 ,小艾以 1 开头并且她赢了

对于 3 ,小艾选择 1 ,小鲍再次选择 1 ,小艾输了

咱们拿4举个例子

4 = 小艾 -> (4 - 1) - 剩下 3 给 小鲍
3 = 小鲍 -> (3 -1) - 剩下 2 给 小艾
2 = 小艾 -> (2 - 1) - 剩下 1 给 小鲍

现在鲍勃无法选择任何东西,他输了

像这样,如果我们尝试每个数字,我们将得到一个模式,如果我们知道 N 是奇数,那么 小艾输了,如果 N 是偶数小艾赢了。

解决这个问题的简单方法是返回 N % 2 == 0

小白:没问题,谁叫为了“真爱”呢。

真正面试环节

面试官:咱们今天来个轻松的,你可以解答这道”除数游戏“的题目吗,来看看你对简单题目的理解。

小白:嘿嘿,这不巧了么这不是。
在这里插入图片描述

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

小明:OK,完事儿,等着面试官来表扬自己吧。他肯定会说:小子,你是个好手!工位都给你准备好了,工资你说了算。

面试官:矮油,不错啊,不过你是不是完成的太快了,这么一行就像糊弄我。是否还有其他办法呢。
在这里插入图片描述
小明OS:今年这个找工市场,人言洛阳花似锦,偏我来时不逢春。。。不是,谁让你这出题正好有简单方法呢!

public static boolean divisorGame(int N) {// dp数组,dp[i]表示N=i时,小艾是否能获胜boolean[] dp = new boolean[N + 1];for (int i = 2; i <= N; i++) {// 对于每个N,遍历所有可能的选择for (int x = 1; x < i; x++) {if (i % x == 0 && !dp[i - x]) {dp[i] = true;break;}}}return dp[N];}

小白:您好,面试官,这回可以了吧,我终于有钱请小美看电影了!
在这里插入图片描述

============================================================================
🍀🍀🍀🍀🍀🍀更多算法题解请看 面试数据结构与算法总结分类+leetcode目录【基础版】
编码道路漫漫,只要先看脚下的路,徐徐前进即可。

相关文章:

小白水平理解面试经典题目LeetCode 1025 Divisor Game【动态规划】

1025 除数游戏 小艾 和 小鲍 轮流玩游戏&#xff0c;小艾首先开始。 最初&#xff0c;黑板上有一个数字 n 。在每个玩家的回合中&#xff0c;该玩家做出的动作包括&#xff1a; 选择任意 x&#xff0c;使 0 < x < n 和 n % x 0 。将黑板上的数字 n 替换为 n - x 。 此…...

基于单片机的智能宠物喂食器设计

摘要:阐述智能宠物喂食器的实现方式,以STC89C52单片机为核心芯片,控制LCD的显示、语音芯片的启动和步进电机的运行。通过按键设置预设时间,当时间到达预设时间时,语音电路发出提示,步进电机工作,提供食物。此系统解决了主人由于各种原因不在家,使得宠物不能按时吃饭的问…...

探索单片机应用领域:从智能家居到工业自动化

单片机作为一种微型计算机芯片&#xff0c;在智能家居和工业自动化领域有着广泛的应用。以下将从智能家居和工业自动化两个方面分点论述单片机的应用。 智能家居领域&#xff1a; 1. 智能灯光控制&#xff1a; 单片机可以用于控制智能灯光系统&#xff0c;实现灯光的远程控制…...

Nginx介绍和使用

Nginx是一个高性能的HTTP和反向代理web服务器&#xff0c;其使用方法包括安装、配置以及与其他软件的配合使用。 Nginx被广泛认为是一个轻量级、占用资源少、并发处理能力强大的web服务器软件。它不仅可以作为HTTP服务器提供静态内容服务&#xff0c;还可以作为反向代理服务器…...

异步编程——CompletableFuture用法详解

文章目录 前言1. Future 线程池2. 什么是CompletableFuture 前言 我们异步执行一个任务时&#xff0c;需要用线程池Executor去创建&#xff0c;有两种方式&#xff1a; 如果不需要有返回值&#xff0c; 任务继承Thread类或实现Runnable接口&#xff1b;如果需要有返回值&…...

Linux常用命令(不断更新)

cd 切换目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 pwd 显示工作路径 ls -l 显示文件和目录的详细信息 ls -a 列出全部文件 ls -R 连同子目录的内容一起列出 ls -lh 显示权限 cp 复制 mv 移动 rm 删除 cat 查看文件内容 find 文件搜索 文件权限 …...

C++ 浮点数二分 数的三次方根

给定一个浮点数 n &#xff0c;求它的三次方根。 输入格式 共一行&#xff0c;包含一个浮点数 n 。 输出格式 共一行&#xff0c;包含一个浮点数&#xff0c;表示问题的解。 注意&#xff0c;结果保留 6 位小数。 数据范围 −10000≤n≤10000 输入样例&#xff1a; 1000.00…...

辽宁博学优晨教育科技有限公司视频剪辑培训专业之选

随着数字时代的到来&#xff0c;视频剪辑技术已成为各行各业不可或缺的一项技能。为了满足市场需求&#xff0c;辽宁博学优晨教育科技有限公司&#xff08;以下简称“博学优晨”&#xff09;推出了专业的视频剪辑培训课程&#xff0c;旨在为广大学员提供系统、高效的学习机会。…...

数据转换成json格式

// List<SpinfokuZD> xm GetmoreSpinfoku(id); // return JsonConvert.SerializeObject(xm); //将数据转换成json格式 return JsonConvert.SerializeObject(ds); //将数据转换成json格式 spcgjlZD spselld JsonConvert.Deseriali…...

css3的var()函数

css3的var()函数 变量要以两个连字符--(横杆)(减号)为开头 变量可以在:root{}中定义, :root可以在css中创建全局样式变量。通过 :root本身写的样式&#xff0c;相当于 html&#xff0c;但优先级比后者高。 在CSS3中&#xff0c;var()函数是一个用于插入CSS自定义属性&#xff…...

武汉灰京文化展望未来游戏产业,科技创新引领全面升级的游戏体验

随着科技的迅速发展&#xff0c;未来游戏产业的发展将迎来一个全新的纪元。科技创新将引领游戏体验的全面升级&#xff0c;让玩家不再仅仅是通过屏幕与游戏互动&#xff0c;而是能够亲身感受到游戏世界的存在。这种全新的游戏体验将推动游戏产业不断突破创新&#xff0c;吸引更…...

SOLIDWORKS Visualize 界面介绍

现在有越来越多的朋友在工作中选择使用SOLIDWORKS Visualize正版软件&#xff0c;这真是太棒了!这次的主题是小索带大家了解SOLIDWORKS Visualize界面&#xff0c;让更多的朋友快速的熟悉SOLIDWORKS Visualize界面。 【菜单栏】位于界面的顶端&#xff0c;菜单栏包含多个下拉菜…...

负载均衡下webshell连接nginx解析漏洞、sql注入第一关

首先搭建环境找到php较低的版本改一下账号密码输入?id1 正常 输入?id1 报错 .0 输入?id1-- 正常 判断是字符型注入&#xff0c;闭合方式是 id是1后台看是数据表里第一行 查询id1出错前端打印出了报错信息语法错误这里是找到了库名&#xff0c;接下来是找表名这个方法是…...

养老项目技术架构和工程结构

数据层&#xff1a;MySQL、Redis 服务层&#xff1a;SpringBoot、SpringMVC、SpringCache结合Redis的缓存、定时任务XXL-JOB、和swagger配合使用生成接口文档的Knife4j、Lombok、双向通信使用的WebSocket以及Spring Security 接入层使用的nginx——反向代理、负载均衡 前端使…...

免费白嫖一个互联网创业者交流论坛,真香!

先说最重要的 当前小报童39.9&#xff0c;2.23之后会涨价到99.9 现在扫码购买&#xff0c;然后凭借截图找我全款报销&#xff0c;全款报销&#xff01; 扫码报销&#xff0c;备注“烽狂创客” 下面来看下这个专栏的内容 专栏作者是谁 挽歌&#xff0c;20岁&#xff0c;985大…...

Zilliz Cloud 再发新版本:性能提升超 10 倍,AI 应用开发流程再简化!

Zilliz Cloud 再发新版本&#xff01; 本次新版本的主要内容包括&#xff1a;大幅提升的向量搜索性能&#xff08;性能提升 10 倍以上&#xff09;、企业级数据安全和无缝数据集成。新版本发布后&#xff0c;用户无需自定义代码&#xff0c;便可快速顺畅地完成非结构化数据处理…...

基于SpringBoot的高校竞赛管理系统

基于SpringBoot的高校竞赛管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 个人中心 管理员界面 老师界面 摘要 高校竞赛管理系统是为了有效管理学校…...

【国产MCU】-CH32V307-通用定时器(GPTM)-编码模式与旋转编码器驱动

通用定时器(GPTM)-编码模式与旋转编码器驱动 文章目录 通用定时器(GPTM)-编码模式与旋转编码器驱动1、通用定时器编码模式介绍2、旋转编码器介绍3、驱动API介绍4、编码模式使用示例本文将详细介绍如何使用CH32V307通用定时器的编码模式。 1、通用定时器编码模式介绍 编码器…...

国外高防服务器需要注意哪些方面

随着互联网的快速发展&#xff0c;网络安全问题日益突出&#xff0c;高防服务器逐渐成为企业和个人用户的首选。然而&#xff0c;在选择和使用国外高防服务器时&#xff0c;需要注意以下几个方面&#xff0c;以确保安全和稳定。 一、防御能力 首先&#xff0c;需要考虑国外高防…...

MySQL系列之索引入门(下)

前言 通过上文&#xff0c;我想各位盆友已熟悉MySQL的索引分类及其含义&#xff0c;那么如何合理的使用呢&#xff1f; 请继续围观此文&#xff0c;一探究竟&#xff01; 一、创建索引 首先&#xff0c;我们一起学习索引是如何创建的&#xff0c;又有哪些方式。 1. create t…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章&#xff0c;抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法&#xff0c;已经有很多的工作和这个任务相关。这两年 diffusion 模型很火&#xff0c;大家又开始用 diffusion 模型做各种 CV 任务了&am…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...