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

【LeetCode】每日一题(1)

目录

题目:

解题思路:

代码:

写在最后:


题目:

 这是他给出的接口:

class Solution {
public:
    int fillCups(vector<int>& amount) {
    
    }
};

作为一个数学学渣,我想不出厉害的数学算法来解答(也看不懂)

所以就放弃思考,直接开冲。

解题思路:

根据题目可知,因为要返回最少的秒数,

所以每次装两杯水是最快的,

因此,我们可以直接开一个大堆,减去两个最多的杯数,再让秒数++,

而减到最后只剩两种情况:[1, 0, 0] 和 [0, 0, 0]

那就只需当top2为零就返回top1 + 秒数即可。

代码:

class Solution {
public:
    int fillCups(vector<int>& amount) {
        //使用优先级队列模拟一个大堆
        //因为优先级队列会自动排好序
        priority_queue<int> q;

        //入队
        for(const auto& e : amount)
        {
            q.push(e);
        }

        //记录秒数
        int ans = 0;

        //循环
        while(1)
        {
            //取出队列最大的两个数
            int x1 = q.top();
            q.pop();
            int x2 = q.top();
            q.pop();

            //满足[1, 0, 0] 或 [0, 0, 0]
            if(x2 == 0)
            {
                return ans + x1;
            }

            //秒数++,减两杯
            ans++, x1--, x2--;
            q.push(x1), q.push(x2);
        }
        
        //最后加个return过检查
        return 1;
    }
};

这样就过了。

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

相关文章:

  • Linux内核并发与竞争-原子操作
  • 【Spring】注解实现IOC操作,你理解了吗?
  • 【C++:STL之栈和队列 | 模拟实现 | 优先级队列 】
  • 面试官问:如何确保缓存和数据库的一致性?
  • Java零基础教程——数据类型
  • SharkTeam:Move合约开发与合约安全
  • 刚刚,体验了一把Bing chat很爽
  • 【计算机网络】Linux环境中的TCP网络编程
  • 【SpringBoot】SpringBoot常用注解
  • 【性能】性能测试理论篇_学习笔记_2023/2/11
  • 【Hello Linux】 Linux基础命令
  • 【Python小游戏】通过这款专为程序员设计的《极限车神》小游戏,你的打字速度可以赢过专业录入员,这个秘密98%的人都不知道哦~(爆赞)
  • C++之多态【详细总结】
  • Android 逆向工具大整理,碉堡了
  • 【C++】类和对象(中)
  • 【RocksDB】TransactionDB源码分析
  • Angular Elements 及其运作原理
  • HashMap ConcurrentHashMap
  • interface和setter,getter
  • js
  • php中curl和soap方式请求服务超时问题
  • python3 使用 asyncio 代替线程
  • React组件设计模式(一)
  • Spark RDD学习: aggregate函数
  • webpack入门学习手记(二)
  • Web设计流程优化:网页效果图设计新思路
  • 从零开始学习部署
  • 从伪并行的 Python 多线程说起
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 消息队列系列二(IOT中消息队列的应用)
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #Spring-boot高级
  • #传输# #传输数据判断#
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (0)Nginx 功能特性
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (算法设计与分析)第一章算法概述-习题
  • (未解决)macOS matplotlib 中文是方框
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)【Hibernate总结系列】使用举例
  • (转)Google的Objective-C编码规范
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • *Django中的Ajax 纯js的书写样式1
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET/C# 使窗口永不获得焦点
  • .NET中统一的存储过程调用方法(收藏)
  • .net专家(张羿专栏)
  • ::什么意思
  • []error LNK2001: unresolved external symbol _m