当前位置:网站首页>二分法中等 LeetCode6133. 分组的最大数量
二分法中等 LeetCode6133. 分组的最大数量
2022-08-01 21:16:00 【18阿鲁】
描述
给你一个正整数数组 grades ,表示大学中一些学生的成绩。你打算将 所有 学生分为一些 有序 的非空分组,其中分组间的顺序满足以下全部条件:
第 i 个分组中的学生总成绩 小于 第 (i + 1) 个分组中的学生总成绩,对所有组均成立(除了最后一组)。
第 i 个分组中的学生总数 小于 第 (i + 1) 个分组中的学生总数,对所有组均成立(除了最后一组)。
返回可以形成的 最大 组数。
示例 1:
输入:grades = [10,6,12,7,3,5]
输出:3
解释:下面是形成 3 个分组的一种可行方法:
- 第 1 个分组的学生成绩为 grades = [12] ,总成绩:12 ,学生数:1
- 第 2 个分组的学生成绩为 grades = [6,7] ,总成绩:6 + 7 = 13 ,学生数:2
- 第 3 个分组的学生成绩为 grades = [10,3,5] ,总成绩:10 + 3 + 5 = 18 ,学生数:3
可以证明无法形成超过 3 个分组。
示例 2:
输入:grades = [8,8]
输出:1
解释:只能形成 1 个分组,因为如果要形成 2 个分组的话,会导致每个分组中的学生数目相等。
提示:
1 <= grades.length <= 105
1 <= grades[i] <= 105
分析
数组元素的大小不重要,只要判断数组长度能够凑出多少个分组。
二分法计算
class Solution {
public int maximumGroups(int[] grades) {
int n = grades.length;
int left = 1, right = n;
while (left < right) {
int mid = (right - left + 1) / 2 + left;
if ((1+mid) > 2 * n / mid) {
right = mid - 1;
} else if ((1+mid) < 2 * n / mid){
left = mid;
} else {
return mid;
}
}
return left;
}
}
边栏推荐
- 【Unity实战100例】文件压缩Zip和ZIP文件的解压
- Questions I don't know in database kernel interview(1)
- CS-NP白蛋白包覆壳聚糖纳米颗粒/人血清白蛋白-磷酸钙纳米颗粒无机复合材料
- JVM内存结构详解
- C专家编程 第1章 C:穿越时空的迷雾 1.2 C语言的早期体验
- ORI-GB-NP半乳糖介导冬凌草甲素/姜黄素牛血清白蛋白纳米粒的研究制备方法
- 列表页常见的 hook 封装
- C陷阱与缺陷 第7章 可移植性缺陷 7.10 首先释放,然后重新分配
- Hiking, cured my mental internal friction
- Based on FPGA in any number of bytes (single-byte or multibyte) serial port (UART) to send (including source engineering)
猜你喜欢
随机推荐
Questions I don't know in database kernel interview(1)
[Chinese tree tags - CTB]
with语句和上下文管理器
【接口测试】JMeter调用JS文件实现RSA加密
【Unity实战100例】文件压缩Zip和ZIP文件的解压
ahooks 是怎么处理 DOM 的?
C专家编程 第1章 C:穿越时空的迷雾 1.1 C语言的史前阶段
C Pitfalls and Defects Chapter 7 Portability Defects 7.9 Case Conversion
JS提升:手写发布订阅者模式(小白篇)
PX4模块设计之十五:PX4 Log设计
网络安全与基础设施安全局(CISA):两国将在网络安全方面扩大合作
JS提升:如何中断Promise的链式调用
LeetCode每日一题(1807. Evaluate the Bracket Pairs of a String)
JSD-2204-Knife4j框架-处理响应结果-Day07
15 分钟带你入门 Grafana
Pytorch框架学习记录10——线性层
Pytorch框架学习记录9——非线性激活
这些 hook 更优雅的管理你的状态
Review Set/Map basics with these two hooks
微服务负载均衡器Ribbon









