news 2026/6/10 12:33:47

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/9 23:44:47

Applite:彻底改变Mac软件管理的革命性图形界面工具

Applite&#xff1a;彻底改变Mac软件管理的革命性图形界面工具 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为复杂的终端命令而头疼吗&#xff1f;Applite为您带来了前…

作者头像 李华
网站建设 2026/6/7 16:32:50

从“十五五”规划建议看车联网重点发展方向

随着“十五五”规划建议的提出&#xff0c;中国正迈向基本实现社会主义现代化的关键阶段。在这一历史背景下&#xff0c;车联网作为智能交通系统的重要组成部分&#xff0c;其发展前景备受瞩目。 本文将从“十五五”规划建议出发&#xff0c;深入分析车联网的重点发展方向&…

作者头像 李华
网站建设 2026/6/8 12:09:59

`.toggleClass()` 方法详解

.toggleClass() 方法详解 在JavaScript中,.toggleClass() 是jQuery库中的一个常用方法,用于切换元素的类名。本文将详细介绍.toggleClass()方法的使用方法、语法、返回值以及一些使用技巧。 1. 使用方法 .toggleClass() 方法可以添加、移除或切换一个或多个类名。当类名不…

作者头像 李华
网站建设 2026/6/8 3:08:36

LobeChat多语言支持现状与国际化适配方案

LobeChat多语言支持现状与国际化适配方案 在构建现代AI聊天应用的今天&#xff0c;一个看似基础却极易被低估的问题正悄然影响着全球用户的体验——你有没有遇到过这样的场景&#xff1a;一位德国用户打开对话界面&#xff0c;发现按钮上写着“New Chat”&#xff0c;而提示语却…

作者头像 李华
网站建设 2026/6/8 7:30:28

Python 列表(List)详解

Python 列表(List)详解 引言 在Python编程语言中,列表(List)是一种非常常用的数据结构。它允许程序员存储一系列有序的元素,这些元素可以是任意数据类型。列表在Python中具有广泛的应用,本文将详细介绍Python列表的特性和使用方法。 列表的定义与创建 定义 列表是一种…

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

13、Linux文件系统挂载与检查全攻略

Linux文件系统挂载与检查全攻略 1. fstab文件与启动磁盘检查 在Linux系统中, /etc/fstab 文件的最后两个字段由整数值组成。第一个值供 dump 命令使用,用于确定是否需要对文件系统进行备份;第二个值由 fsck 命令使用,用于判断在系统重启时是否需要检查文件系统以及检…

作者头像 李华