news 2026/6/23 21:07:21

D.二分查找-二分答案-求最小——1283. 使结果不超过阈值的最小除数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
D.二分查找-二分答案-求最小——1283. 使结果不超过阈值的最小除数

题目链接:1283. 使结果不超过阈值的最小除数(中等)

算法原理:

解法:二分查找

6ms击败94.13%

时间复杂度O(n×log(max_num))

因为是找最小,在左边,因此选用最左端点模型

①题目没说一定升序,且除数一旦大于最大值,之后结果都是1,因此right要取数组中的最大值,需要O(N)时间复杂度的一次遍历

②分析要找的目标值,来分析left和right最终的位置,写出判断方法check,判断当前mid作为除数是否符合<=t的条件

③如果mid在最左端点的左边,那么left=mid+1,此时分析check方法,分析如上图,对应的值应该是false

④咱们要找的就是未知的符合条件的最左端点,所以left最终的位置即答案,无需分析第二落到的位置

⑤小细节:left初始化为1,因为当最左端点就是left落到的位置时,0不能做除数,除数最小也是1

Java代码:

class Solution { public int smallestDivisor(int[] nums, int t) { //除数不能是0,所以left初始化为1 int left=1,right=0; for(int x:nums) right=Math.max(x,right); //找除数最小:最左端点模型 while(left<right){ int mid=left+(right-left)/2; if(!check(nums,mid,t)) left=mid+1; else right=mid; } return left; } private boolean check(int[] nums,int mid,int t){ int sum=0; for(int x:nums){ //+mid-1:补足余数,完成向上取整 sum+=(x+mid-1)/mid; if(sum>t) return false; } return true; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 2:42:38

A.每日一题——3562. 折扣价交易股票的最大利润

题目链接&#xff1a;3562. 折扣价交易股票的最大利润&#xff08;困难&#xff09; 算法原理&#xff1a; 解法&#xff1a;01背包动态规划 297ms击败34.61% 时间复杂度O(N∗Budget) ①树形结构构建&#xff1a;将层级关系&#xff08;hierarchy&#xff09;转换为邻接表形式的…

作者头像 李华
网站建设 2026/6/19 7:44:15

圣默思 Teledyne DalsaFilr SWIR相机

Teledyne Dalsa&Filr SWIR相机 成像方案 什么是SWIR? 短波红外&#xff08;SWIR&#xff0c;一般定义为0.9 - 1.7μm波长范围内的光&#xff0c;但也可归入0.7 - 2.5μm波长范围&#xff09;成像使我们能够看到我们肉眼无法看到的物体。与物体本身发出的中波红外光…

作者头像 李华
网站建设 2026/6/23 10:47:01

Go 语言结构

Go 语言结构 概述 Go 语言,也称为 Golang,是由 Google 开发的一种静态强类型、编译型、并发型编程语言。自 2009 年发布以来,Go 语言以其简洁的语法、高效的并发处理能力和高性能而受到开发者的青睐。本文将深入探讨 Go 语言的各个结构特性,帮助读者更好地理解和应用 Go …

作者头像 李华
网站建设 2026/6/23 9:20:50

JavaScript for 循环详解

JavaScript for 循环详解 引言 在JavaScript编程中,循环是处理重复任务的重要工具。for循环是JavaScript中最常用的循环结构之一,它允许开发者重复执行一段代码,直到满足特定的条件。本文将详细介绍JavaScript中的for循环,包括其语法、使用场景以及注意事项。 for 循环的…

作者头像 李华
网站建设 2026/6/23 20:44:57

5步搞定SillyTavern版本升级:告别烦恼的完整指南

5步搞定SillyTavern版本升级&#xff1a;告别烦恼的完整指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 还在为软件升级而头疼吗&#xff1f;担心升级过程中数据丢失、配置混乱&#x…

作者头像 李华
网站建设 2026/6/23 20:45:33

猫头虎AI开源分享:如何批量获取稀土掘金社区文章阅读量暨文章阅读量数据批量提取解决方案

猫头虎AI开源分享&#xff1a;如何批量获取稀土掘金社区文章阅读量暨文章阅读量数据批量提取解决方案 在数据分析和内容创作的过程中&#xff0c;获取文章的阅读量数据对于衡量文章的受欢迎程度、分析内容趋势具有重要意义。特别是对于像稀土掘金这样的大型技术社区平台&#…

作者头像 李华