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

【LeetCode】12. 小张刷题计划

稳住,能赢!没有经验的同学在面试岗位的时候,总是显得手忙脚乱,所以多练习,把技能提升,眼界提升,接着心态放平和,不要慌张,把面试题目读懂读透彻就会大大提升赢的概率。

1. 题目

本题质量不错,是一道很好的二分法面试题。

2. 分析

2.1 贪心

本题是求小张做题时间最多的一天耗时,不是求总共耗时,所以贪心的方法解这题不行。也就是说下面这个方法是无法得到正确答案的。

class Solution:def minTime(self, time: List[int], m: int) -> int:time.sort(reverse=True)res = sum(time[m::])return res

2.2 二分法

本题如果去掉求助这一环节,那么就是一道典型的二分法题,但是加上了“求助” 这么一个操作,二分法依然可解。只不过是带上了一点儿限制条件:这个限制条件就是去除掉每天的做题中耗时最久的那道题。

在得到这个限制条件后,唯一的判断条件就是:在当前这个“每天的最大做题量”情况下,是否能在要求的天数内完成做题?这么来看,就是一道比较典型的二分法求解题了。

3. 代码

class Solution:def minTime(self, time: List[int], m: int) -> int:left, right = 0, sum(time)while(left <= right):mid = (left + right) // 2 print(left, right, mid)if self.check(mid, time, m):right = mid - 1else: left = mid + 1    return left# 每天耗时limit的情况下,是否能在m天内完成def check(self, limit, time, m):        need = 0cur_max = 0 # 某一个窗口内的最大耗时        total = 0for i in range(len(time)):cur_max = max(cur_max, time[i])if total + time[i] - cur_max <= limit:total += time[i]else: # 重置。(又是新的一天)need += 1cur_max = time[i]total = time[i]if total:need += 1return m>=need
http://www.lryc.cn/news/396173.html

相关文章:

  • Tomcat部署以及优化
  • ubuntu 22 安装 lua 环境 编译lua cjson 模块
  • 地下城游戏中都有哪些类型的服务器?
  • 大模型面试(二)
  • rsync远程同步--累了,明天继续再写~。
  • 每日刷题(二分查找,匈牙利算法,逆序对)
  • LLM应用构建前的非结构化数据处理(三)文档表格的提取
  • 如何从数码相机恢复已删除的照片
  • 设计模式使用场景实现示例及优缺点(创建型模式——单例模式、建造者模式、原型模式)
  • LAMP万字详解(概念、构建步骤)
  • 金南瓜科技SECS/GEM:引领智能制造新潮流
  • 昇思训练营打卡第二十一天(DCGAN生成漫画头像)
  • 东方通Tongweb发布vue前端
  • spring xml实现bean对象(仅供自己参考)
  • MiniGPT-Med 通用医学视觉大模型:生成医学报告 + 视觉问答 + 医学疾病识别
  • 如何判断ip地址在同一个网段:技术解析与实际应用
  • linux高级编程(TCP)(传输控制协议)
  • 【常见开源库的二次开发】一文学懂CJSON
  • 点云下采样有损压缩
  • AutoHotKey自动热键(六)转义符号
  • 第16章 主成分分析:四个案例及课后习题
  • 股票分析系统设计方案大纲与细节
  • .gitmodules文件
  • STM32 SPI世界:W25Q64 Flash存储器的硬件与软件集成策略
  • 【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验17 开放最短路径优先OSPF
  • ChatGPT对话:python程序模拟操作网页弹出对话框
  • 利用亚马逊云科技云原生Serverless代码托管服务开发OpenAI ChatGPT-4o应用
  • Selenium 切换 frame/iframe
  • VOI(Virtual Operating System Infrastructure,虚拟操作系统基础架构)
  • 迭代器模式(大话设计模式)C/C++版本