当前位置: 首页 > 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;}
};

这样就过了。

写在最后:

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

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

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

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

http://www.lryc.cn/news/2271.html

相关文章:

  • SpringCloud-Netflix学习笔记11——Hystrix实现服务降级
  • Oracle Dataguard(主库为 Oracle rac 集群)配置教程(03)—— 创建 dataguard 数据库之前的准备工作
  • 零代码做分析报表的bi软件才是好软件
  • linux ALSA 驱动架构
  • JDK 8 JVM内存结构详解
  • 黑马程序员 Linux 教程
  • 文件操作 -- IO
  • FPGA解析串口协议帧3.0版本,增加了错误重发功能,提供仿真文件以及源码
  • 365天深度学习训练营 第P6周:好莱坞明星识别
  • 一文读懂 Zebec Chain 的“先行网络” Nautilus 链
  • FuzzyMathematicalModel模糊数学模型-2-多目标模糊综合评价案例分享
  • 单链表--C语言版(从0开始,超详细解析,小白一看就会)
  • cv2-特征点匹配(bf、FLANN)
  • 基于matlab多功能相控阵雷达资源管理的服务质量优化
  • 立创eda专业版学习笔记(6)(pcb板移动节点)
  • Java面试——MyBatis相关知识
  • Cortex-M0编程入门
  • 字符串函数能有什么坏心思?
  • Vue3 组件之间的通信
  • 多路查找树
  • Mybatis——注入执行sql查询、更新、新增以及建表语句
  • 即时通讯系列-4-如何设计写扩散下的同步协议方案
  • tui-swipe-action组件上的按钮点击后有阴影的解决方法
  • 【大数据Hadoop】Hadoop 3.x 新特性总览
  • Python-第三天 Python判断语句
  • 失手删表删库,赶紧跑路?!
  • 技术树基础——16排它平方数(Bigdecimal,int,string,数组的转换)
  • 04动手实践:手把手带你实现gRPC的Hello World
  • 区块链技术与应用1——BTC-密码学原理
  • PyTorch学习笔记:data.WeightedRandomSampler——数据权重概率采样