笔试算法模拟题精解之“学习小组”

简介: 因为题目中说了ai是一个非递减的数列,所以我们可以推导出一个式子。

【在线编程产品介绍】

阿里云开发者社区在线编程:

免费刷题大神器,助你拿到好offer

周赛月赛不停歇,做题还能领奖品

大赛笔试全真题,常做常新有惊喜

点击链接开始产品体验:https://developer.aliyun.com/coding

本文为大家介绍的是“131.学习小组”的解法探究。先来看一下题目内容:

题目详情:

等级:中等
知识点:贪心
查看题目:学习小组

在一个课堂上,有n个学生(1<=n<=3e5),每个学生都有他们自己的学分ai(1<=ai<=1e9,ai<=ai-1),现在老师想将他们分为m个小组(1<=m<=n),为了方便交流,所有的小组都是由相邻的学生组成(abc相邻,不存在ac一个小组b在另一个小组的情况),现在老师想让每个小组的学分差值尽量小(最大值减去最小值),请你帮助老师来分一下组,输出最后的每个小组的最小的差值的总和。

第一行和第二行输入两个数n、m表示有n个学生要分成m个小组,再输入n个数,表示每个学生的学分。

输出一个数字,表示最后分出的m个小组的最小的差值的总和。

示例1
输入:
5
3
[1,3,5,7,9]
输出:
4

解题方法:

因为题目中说了ai是一个非递减的数列,所以我们可以推导出一个式子。

比如我们要将一个数组分成3组,那么可以假设为,[a1,ai],[ai+1,aj],[aj+1,an]这三组,然后我们所要求的值就是(ai - a1) + (aj - ai+1) + (an - aj+1) .

那么就可以推导出an - a1 + aj - aj+1 - ai - ai+1,所以就是an - a1减去最大的m-1个相邻的差值,那么ai-ai+1这个显然是差分的性质,所以我们对于原数列求一个差分数组出来,然后对差分数组进行排序,贪心的去减去前m-1个最大的就好了。

看完之后是不是有了答题思路了呢,快来练练手吧:131.学习小组

在线编程周赛、月赛火热进行中,更有限时答题活动,定制卫衣、双肩背包、机械键盘等多重好礼等你来拿~每天都有好礼相送~点击了解周赛详情:在线编程3月份比赛正式开启!机械键盘等你拿!

b462f1d86b44481ca24c0ad63fe55948.png

相关文章
|
17天前
|
存储 算法 Go
算法学习:数组 vs 链表
算法学习:数组 vs 链表
22 0
|
21天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】43. 算法优化之Adam算法【RMSProp算法与动量法的结合】介绍及其Pytorch实现
【从零开始学习深度学习】43. 算法优化之Adam算法【RMSProp算法与动量法的结合】介绍及其Pytorch实现
|
21天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】40. 算法优化之AdaGrad算法介绍及其Pytorch实现
【从零开始学习深度学习】40. 算法优化之AdaGrad算法介绍及其Pytorch实现
|
21天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
|
17天前
|
算法 搜索推荐 JavaScript
算法学习:快速排序
算法学习:快速排序
15 1
|
6天前
|
算法 Java
《JVM由浅入深学习【八】 2024-01-12》JVM由简入深学习提升分(JVM的垃圾回收算法)
《JVM由浅入深学习【八】 2024-01-12》JVM由简入深学习提升分(JVM的垃圾回收算法)
6 0
|
28天前
|
存储 算法 C语言
数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)
数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)
29 1
|
28天前
|
存储 算法 测试技术
数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)
数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)
21 1
|
7天前
|
机器学习/深度学习 人工智能 算法
技术经验解读:【转】完美洗牌算法学习
技术经验解读:【转】完美洗牌算法学习
|
15天前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】Apriori算法在关联规则学习中的应用
【机器学习】Apriori算法在关联规则学习中的应用
42 0