当前位置:网站首页>LeetCode_2358_分组的最大数量
LeetCode_2358_分组的最大数量
2022-08-02 08:19:00 【Fitz1318】
题目链接
题目描述
给你一个正整数数组 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 <= 10^51 <= grades[i] <= 10^5
解题思路
- 只需要按照
1,2,3,...分组就行 - 假设有
k组,那么根据等差数列公式,有k * (1 + k) / 2 <= n,取最大的k即可、 - 注意以下最后一组
k可能没有足够的数量,因此可能需要划分到第k-1组里,所以初始k = 1,返回的是k - 1
AC代码
class Solution {
public int maximumGroups(int[] grades) {
int ans = 1;
while (ans <= 2 * grades.length / (1 + ans)) {
ans++;
}
return ans - 1;
}
}
边栏推荐
- BGP通过MPLS解决路由黑洞
- QT web development - Notes - 3
- day_05_pickel 和 json
- C Language Basics_Union
- Wang Xuegang - compiled shipment line file
- R语言plotly可视化:plotly可视化回归模型实际值和回归预测值的散点图分析回归模型的预测效能、一个好的模型大部分的散点在对角线附近(predicted vs actual)
- Axial Turbine Privacy Policy
- Analysis of software testing technology How far is Turing test from us
- Biotinyl Cystamine|CAS:128915-82-2|生物素半胱胺
- How to use postman
猜你喜欢
随机推荐
houdini 求出曲线的法向 切线以及副法线
RestTemlate源码分析及工具类设计
UVM信息服务机制
二分类和多分类
MySQL 中 count() 和 count(1) 有什么区别?哪个性能最好?
Biotin-EDA|CAS:111790-37-5| 乙二胺生物素
R语言plotly可视化:使用plotly可视化模型预测真阳性率(True positive)TPR和假阳性率(False positive)FPR在不同阈值(threshold)下的曲线
下一个排列
OneinStack多版本PHP共存
自定义table表格
tf中tensor的大小输出
OneNote 教程,如何在 OneNote 中创建更多空间?
BGP通过MPLS解决路由黑洞
mysqldump --set-gtid-purged=OFF
Qt读取文件中内容(通过判断GBK UTF-8格式进行读取显示)
MySQL Workbench 安装及使用
MySQL读写分离与主从延迟
血气方刚的年轻小伙竟去做家政小哥,是怎样成功逆袭转行的
How to use postman
Postman download localization of installation and use








