Leetcode 2861. Maximum Number of Alloys

2023-11-02

1. 解题思路

这一题思路上还是挺清晰的,就是对每一台机子看一下其在给定的budget下能够生产的最多合金数。

问题就在于如何求每一台机子能够生产的最大合金数,由于存在stock,因此这里要直接求解多少还是有些复杂的,不过如果给定要生产的合金数,要反推需要的budget数目却是简单的。

所以这里我采用的方式是使用二分搜索的方式找到最大可以生产的合金数,从而搞定了这道题。

2. 代码实现

给出python代码实现如下:

class Solution:
    def maxNumberOfAlloys(self, n: int, k: int, budget: int, composition: List[List[int]], stock: List[int], cost: List[int]) -> int:
        
        def produce(comp):
            i, j = 0, (budget // cost[0] + stock[0]) // comp[0] + 1
            while j-i > 1:
                mid = (i+j) // 2
                cnt = 0
                for idx, c in enumerate(comp):
                    cnt += max(c * mid - stock[idx], 0) * cost[idx]
                    if cnt > budget:
                        break
                if cnt > budget:
                    j = mid
                else:
                    i = mid
            return i
        
        res = [produce(comp) for comp in composition]
        return max(res)

提交代码评测得到:耗时355ms,占用内存16.9MB。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Leetcode 2861. Maximum Number of Alloys 的相关文章

  • Java可视化界面设计(登录界面设计)

    1 界面居中显示 frame setResizable false fame setLocationRelativeTo null frame setVisible true 2 全屏操作 Dimension screenSize Tool
  • 联想微型计算机C470拆装,联想C470一体机一键U盘重装系统教程图解

    联想C470一体机造型小巧 外观唯美时尚 易于摆放并能脱离冗杂线缆的束缚 该机是一款非常时尚的家用一体电脑 采用21 5英寸触控屏幕 全高清显示相当精细 无论是学习办公 还是家庭娱乐都能够满足用户的需求 下面给大家介绍联想C470一体机一键
  • 数的分解

    题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 把 20192019 分解成 33 个各不相同的正整数之和 并且要求每个正整数都不包含数字 22 和 44 一共有多少种不同的分解方法 注意交换 33 个整数
  • 七牛产品概览

    七牛云产品概览 服务对象 个人开发者 创业团队 企业用户 对象存储 Kodo 简介 七牛云提供的数据存储服务主要是针对静态资源文件 image js css 音频 视频 文档 PDF txt json xml yml apk 等等 提供存储

随机推荐

  • Java中string的null和“”对比

    Java中字符串的比对用string equals object 来做 但与空字符串比对的时候要注意 如果是 话 用string equals 如果是null的时候 string equals null 会报错 应该使用string nul
  • SYSAUX表空间清理之WRH$_ACTIVE_SESSION_HISTORY

    查看sysaux表空间使用率高 对于sysaux表空间之前有文章讨论过 本次直入正题 1 检查sysaux表空间占用空间较大的segments SQL gt select from select owner segment name seg
  • mysql while bug_案例分享:MySQL BUG处理

    近一个月处理历史数据问题时 居然连续遇到了2个MySQL BUG 分享给大家一下 也欢迎指正是否有问题 BUG1 数据库版本 MySQL5 7 25 28 操作系统 Centos 7 7 不重要 数据库架构 主 从 级联从 数据库参数 in
  • Java 冒泡排序示例

    以下是 Java 语言实现冒泡排序的示例代码 public class BubbleSort public static void main String args int arr 5 2 8 3 9 1 bubbleSort arr Sy
  • 64、3D Neural Scene Representations for Visuomotor Control

    简介 主页 https 3d representation learning github io nerf dy 机器人操作模型学习的核心问题之一是如何确定 dynamics model 的状态表示 理想的表示应该易于捕捉环境动态 展示对场
  • CDN是做什么用的,怎么一直有人在推荐使用?

    CDN 内容分发网络 的作用与不断的推荐使用背后有着深刻的原因 这是因为CDN在互联网领域发挥着重要且多方面的作用 为许多网站和在线业务提供了显著的优势 首先 让我们来了解CDN的作用是什么 CDN是一种网络架构 旨在将网站的静态资源 如图
  • 100级小号搬砖地图_DNF100版本搬砖地图最高收益攻略(利润化透明)

    DNF搬砖那个地图收益最高 100版本搬砖攻略 大家都知道DNF是一款经典的手游 到现在已经运营十年了 同时也是一款氪金的 当然对于神豪来说都是小问题 但是对于一般的玩家 想玩DNF建议还是先去医院检查一下肝 肝不好建议别入坑 今天小编就给
  • 数学的科普文

    20210105 这次又是整理自己的书签 然后发现了这个文章 这个文章应该是很久之前的时候我看到的 觉得很有趣 应该是当时学习最小二乘法的时候看到的 所以这篇文章就来记录一些平时看到的不错的科普文 以前很多文章都错过了 挺可惜的 正态分布的
  • React Hook的useCallback,memo,usememo的使用

    1 useCallback 每当组件重新渲染的时候 我们之前定义的函数就会被重新声明一次 即使这个函数不需要做出改变 这时可以使用useCallback useCallback主要用于缓存一个函数 useCallback接收两个参数 第一个
  • Apriori算法完整代码

    文章目录 apriori py apriori py usr bin env python coding utf 8 from numpy import 加载数据集 def loadDataSet return 1 3 4 2 3 5 1
  • 深度学习与计算机视觉系列(5)_反向传播与它的直观理解

    作者 寒小阳 龙心尘 时间 2015年12月 出处 http blog csdn net han xiaoyang article details 50321873 声明 版权所有 转载请联系作者并注明出处 1 引言 其实一开始要讲这部分内
  • javaScript:宏任务与微任务的运行顺序

    在写代码的时候 我使用Element组件中的表单重置方法 和vue中子传父方法 这里我想要通过 async 和 await 的特点 await 下一行代码作为微任务执行 来规定代码的执行顺序 让重置方法 滞后 于数据传递 执行 确定按钮 子
  • Java底层原理——HashMap面试问题

    什么时候会用到HashMap 他有什么特点 是基于Map接口实现的 存储键值对时 可以接收null的键值 是非同步的 HashMap存储着Entry hash key value next 对象 你知道HashMap的工作原理吗 通过has
  • Linux驱动

    一 前言 设备树是每一个Linux驱动工程师都必须掌握的一个知识点 有很多之前做单片机的朋友刚接触Linux驱动时 会一脸懵 其实设备树的使用并没有大家想像的那么复杂 对于大部分工程师来说 只要会修改即可 很多粉丝留言说 希望彭老师提供一个
  • 记录CTF命令执行练习中遇到的几道题(一些PHP命令过滤的绕过方法)

    题目1 if isset GET Command GET Command command GET Command if preg match f a g flag cat tac more ls system exec popen pass
  • 在SQL中寻找唯一记录的3种终极方法

    在SQL中寻找唯一记录的3种终极方法 停止使用DISTINCT 开始使用这些快速替代方法 以避免混淆 照片 Luis Cortes on Unsplash 不使用DISTINCT关键字就能获得唯一记录 在你的数据分析项目中 只要你需要从数据
  • Windows server 2008 R2远程桌面3389端口号修改及远程桌面窗口大小调整

    转自 https help aliyun com document detail 51644 html spm 5176 doc51644 6 784 4iAHWH 修改 Windows 服务器默认远程端口 操作步骤 远程连接并登录到 Wi
  • ConcurrentHashMap概述

    1 前言 为什么要使用 ConcurrentHashMap 主要基于两个原因 在并发编程中 jdk1 7的情况下使用 HashMap 可能造成死循环 而jdk1 8 中有可能会造成数据丢失 HashTable 效率非常低下 2 Concur
  • Java微服务内存占用分析

    一 Java 进程中有哪些组件会占用内存 通过 Native Memory Tracking 可以观察到有以下 JVM 组件 在命令行加上 XX NativeMemoryTracking summary 会增加3MB左右内存 损失5 10
  • Leetcode 2861. Maximum Number of Alloys

    Leetcode 2861 Maximum Number of Alloys 1 解题思路 2 代码实现 题目链接 2861 Maximum Number of Alloys 1 解题思路 这一题思路上还是挺清晰的 就是对每一台机子看一下其