LeetCode 2928.给小朋友们分糖果 I:Java提交的运行时间超过了61%的用户

【LetMeFly】2928.给小朋友们分糖果 I:Java提交的运行时间超过了61%的用户

力扣题目链接:https://leetcode.cn/problems/distribute-candies-among-children-i/

给你两个正整数 n 和 limit 。

请你将 n 颗糖果分给 3 位小朋友,确保没有任何小朋友得到超过 limit 颗糖果,请你返回满足此条件下的 总方案数 。

 

示例 1:

输入:n = 5, limit = 2
输出:3
解释:总共有 3 种方法分配 5 颗糖果,且每位小朋友的糖果数不超过 2 :(1, 2, 2) ,(2, 1, 2) 和 (2, 2, 1) 。

示例 2:

输入:n = 3, limit = 3
输出:10
解释:总共有 10 种方法分配 3 颗糖果,且每位小朋友的糖果数不超过 3 :(0, 0, 3) ,(0, 1, 2) ,(0, 2, 1) ,(0, 3, 0) ,(1, 0, 2) ,(1, 1, 1) ,(1, 2, 0) ,(2, 0, 1) ,(2, 1, 0) 和 (3, 0, 0) 。

 

提示:

  • 1 <= n <= 50
  • 1 <= limit <= 50

解题方法:模拟

x x x 0 0 0 min ⁡ ( l i m i t , n ) \min(limit, n) min(limit,n)模拟第一个小朋友,用 y y y 0 0 0 min ⁡ ( l i m i t , n − x ) \min(limit, n-x) min(limit,nx)模拟第二个小朋友,则第三个小朋友能分到 n − x − y n-x-y nxy个。如果 n − x − y ≤ l i m i t n-x-y\leq limit nxylimit,则视为一种可行方案。

  • 时间复杂度 O ( n 2 ) O(n^2) O(n2)
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
class Solution {
public:
    int distributeCandies(int n, int limit) {
        int ans = 0;
        for (int x = 0; x <= n && x <= limit; x++) {
            for (int y = 0; y <= n - x && y <= limit; y++) {
                if (n - x - y <= limit) {
                    ans++;
                }
            }
        }
        return ans;
    }
};
Go
// package main

func distributeCandies(n int, limit int) int {
    ans := 0
    for x := 0; x <= n && x <= limit; x++ {
        for y := 0; y <= n - x && y <= limit; y++ {
            if n - x - y <= limit {
                ans++
            }
        }
    }
    return ans
}
Java
class Solution {
    public int distributeCandies(int n, int limit) {
        int ans = 0;
        for (int x = 0; x <= n && x <= limit; x++) {
            for (int y = 0; y <= n - x && y <= limit; y++) {
                if (n - x - y <= limit) {
                    ans++;
                }
            }
        }
        return ans;
    }
}
  • 执行用时分布1 ms,击败61.78%使用Java的用户;
  • 消耗内存分布40.03 MB,击败5.10%使用Java的用户。
Python
class Solution:
    def distributeCandies(self, n: int, limit: int) -> int:
        ans = 0
        for x in range(min(limit, n) + 1):
            for y in range(min(n - x, limit) + 1):
                if n - x - y <= limit:
                    ans += 1
        return ans

61快乐

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/139380754

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/669519.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微软远程连接工具:Microsoft Remote Desktop for Mac 中文版

Microsoft Remote Desktop 是一款由微软开发的远程桌面连接软件&#xff0c;它允许用户从远程地点连接到远程计算机或虚拟机&#xff0c;并在远程计算机上使用桌面应用程序和文件。 下载地址&#xff1a;https://www.macz.com/mac/5458.html?idOTI2NjQ5Jl8mMjcuMTg2LjEyNi4yMz…

Qt Designer工具如何修改MainWindow窗口的标题

Qt Designer工具如何修改MainWindow窗口的标题 在MainWindow的属性编辑器中选择“windowTitle”后面一栏修改成期望的窗口标题名称即可。 按住“ctrlR”即可查看可视化界面的窗口标题

未见过类型题每周总结(个人向)

1.DP40 小红取数 题目 解析 一道01背包的衍生问题&#xff0c;我们可以按照它的思路定义数组dp[i][j],表示前i个数中%k为j的最大和。为什么设置未%k的最大和呢&#xff1f;是因为当两个数分别%k&#xff0c;如a%kx&#xff0c;b%ky。那么&#xff08;ab&#xff09;%k&#…

锐捷校园网自助服务-字符过滤存在缺陷

锐捷校园网自助服务-字符过滤存在缺陷 漏洞介绍 令人感到十分遗憾的是&#xff0c;锐捷网络安全应急响应中心对漏洞上报似乎缺少了一些奖励&#xff0c;令人对官方上报漏洞失去了些许兴趣​。 该缺陷仅仅打破了安全检查防护&#xff0c;并没有造成实质性危害&#xff0c;至于…

16.Redis之Redis事务

1.MySQL 事务 原子性: 把多个操作,打包成一个整体了 一致性: 事务执行之前,和之后,数据都不能离谱~ 持久性: 事务中做出的修改都会存硬盘 隔离性: 事务并发执行,涉及到的一些问题~~ 2.Redis事务 2.1 认识Redis事务 • 弱化的原⼦性: redis 没有 "回滚机制". …

本地知识库开源框架Fastgpt、MaxKB产品体验

本地知识库开源框架Fastgpt、MaxKB产品体验 背景fastgpt简介知识库共享部署 MaxKB总结 背景 上一篇体验了Quivr、QAnything两个开源知识库模型框架&#xff0c;这次介绍两款小众但是体验比较好的产品。 fastgpt 简介 FastGPT 是一个基于 LLM 大语言模型的知识库问答系统&am…

8-Django项目--登录及权限

目录 templates/login/login.html templates/login/404.html views/login.py utils/pwd_data.py auth.py settings.py 登录及权限 登录 views.py 中间件 auth.py templates/login/login.html {% load static %} <!DOCTYPE html> <html lang"en"&g…

掘金AI 商战 宝典 初级班:如何用AI做文案(实战实操 现学现用 玩赚超值)

未来会用AIE剑客将干掉99.99%不会AI的人! 课程目录&#xff1a; 10-第十讲用AI面试 11-第十一讲用AI写演讲稿 12-第十二讲用AI写工作总结 13-第十三讲用AI写日报周报 14-第十四讲用AI拟定各类合同 15-第十五讲用AI写课程教案 16-第十六讲用AI做商业分析 17-第十七讲用…

20 - grace数据处理 - 地下水储量计算过程分解 - 地下水储量计算

20 - grace数据处理 - 地下水储量计算过程分解 - 地下水储量计算 0 引言1 地下水储量变化计算过程0 引言 由水平衡方程可以将地下水储量的计算过程分解为3个部分,第一部分计算陆地水储量变化、第二部分计算地表水储量变化、第三部分计算冰后回弹改正、第四部分计算地下水储量变…

Kotlin使用Dagger2但无法生成对应类 Unresolved reference: DaggerMyComponent

最近在使用Dagger2时&#xff0c;遇到这个错误&#xff0c;app/build/generated/source/没有生成对应类&#xff0c;没有生成如下类&#xff0c;网上看了许多博客替换版本&#xff0c;添加dagger2的其他依赖均未成功&#xff0c;最终看到一篇大佬的文章才终于得以解决 解决&am…

electron打包时资源下载失败cannot resolve xxx/30.0.9/electron-v30.0.9-win32-ia32.zip

同学们可以私信我加入学习群&#xff01; 正文开始 问题描述解决方案总结 问题描述 最近electron更新频繁&#xff0c;而我在用electron做个人项目&#xff0c;对稳定性没有太高要求&#xff0c;希望保持着electron的最新版本&#xff0c;所以就没有固定版本。 单位网络不太好…

Java(八)——String类

文章目录 String类String的构造及内存分布构造内存分布 常用方法判等比较查找转化替换拆分截取 字符串的不可变性StringBuilder和StringBuffer String类 C语言中没有专门的字符串类型&#xff0c;一般使用字符数组或字符指针表示字符串&#xff0c;而字符串的函数需要包含头文…

【数据结构】二叉树:简约和复杂的交织之美

专栏引入&#xff1a; 哈喽大家好&#xff0c;我是野生的编程萌新&#xff0c;首先感谢大家的观看。数据结构的学习者大多有这样的想法&#xff1a;数据结构很重要&#xff0c;一定要学好&#xff0c;但数据结构比较抽象&#xff0c;有些算法理解起来很困难&#xff0c;学的很累…

PWN-栈迁移

栈迁移 题目&#xff1a;BUUCTF在线评测 (buuoj.cn) 知识点&#xff1a;栈迁移 使用情况&#xff1a;题目中有栈溢出&#xff0c;但是 栈溢出的范围 有限&#xff0c;导致构造的ROP链不能完全写入到栈中&#xff0c;此时需要进行栈迁移&#xff0c;将栈迁移到能接受更多数据的…

GD32F系列MCU片上Flash中Code区和Data区使用解密

GD32F系列MCU产品片上Flash分Code区和Data区&#xff0c;以GD32F303系列为例&#xff0c;从GD32F303xx Datasheet中可以获取code区和data区大小&#xff0c;那Code区和Data区在代码执行上有什么差别呢&#xff1f; Code区代码运行0等待&#xff0c;一般用于存放实时性要求高的代…

STM32(八):独立看门狗 (标准库函数)

前言 上一篇文章介绍了STM32单片机中的USART串口通信&#xff0c;这篇文章我们来介绍一下如何用STM32单片机中的独立看门狗来实现检测按键点灯的程序。 一、实验原理 单片机系统会由于受到外界的干扰&#xff0c;而造成程序执行紊乱&#xff0c;系统无法正常运行。为了防止这…

混合模型方差分析

文章目录 一、说明二、受试者“间”因素和受试者“内”因素的意思&#xff1f;三、混合模型方差分析回答 3 件事四、混合模型方差分析的假设 一、说明 在本文中&#xff0c;我将讨论一种称为混合模型方差分析的方差分析变体&#xff0c;也称为具有重复测量的 2 因素方差分析。…

python替换占位符为变量,实现读取配置文件

文章目录 背景1、定义正则表达式2、替换变量占位符3、实现功能 背景 使用python编写小工具&#xff0c;有一个配置文件&#xff0c;希望实现类似shell命令的&#xff0c;定义变量并且使用${}或者$来引用。如果有好的建议欢迎讨论。 配置文件示例内容如下: D:\project\test\pr…

word里面没有Acrobat选项

加载项被禁止&#xff0c;选择项里面&#xff0c;没有Acrobat选项 文件-》选项 加载项-》com加载项-》转到 添加Acrobat 出现Acrobat选项

阿里云部署nodejs

目录 1、安装node.js 1-1 进入opt/software 1-2 下载node.js安装包 1-3 解压 2 配置环境变量 2-1 vim中配置环境变量 2-2 命令行中保存环境变量 2-3 检查安装版本 2-3 更换镜像 3、上传node.js项目 1-1 启动项目 1-2 配置对应的安全组 ​编辑 4、pm2启动多个node项…