5885. 使每位学生都有座位的最少移动次数

一个房间里有 n 个座位和 n 名学生,房间用一个数轴表示。给你一个长度为 n 的数组 seats ,其中 seats[i] 是第 i 个座位的位置。同时给你一个长度为 n 的数组 students ,其中 students[j] 是第 j 位学生的位置。

你可以执行以下操作任意次:

  • 增加或者减少第 i 位学生的位置,每次变化量为 1 (也就是将第 i 位学生从位置 x 移动到 x + 1 或者 x - 1)

请你返回使所有学生都有座位坐的 最少移动次数 ,并确保没有两位学生的座位相同。

请注意,初始时有可能有多个座位或者多位学生在 同一 位置。

示例 1:输入:seats = [3,1,5], students = [2,7,4]
输出:4
解释:学生移动方式如下:
- 第一位学生从位置 2 移动到位置 1 ,移动 1 次。
- 第二位学生从位置 7 移动到位置 5 ,移动 2 次。
- 第三位学生从位置 4 移动到位置 3 ,移动 1 次。
总共 1 + 2 + 1 = 4 次移动。示例 2:输入:seats = [4,1,5,9], students = [1,3,2,6]
输出:7
解释:学生移动方式如下:
- 第一位学生不移动。
- 第二位学生从位置 3 移动到位置 4 ,移动 1 次。
- 第三位学生从位置 2 移动到位置 5 ,移动 3 次。
- 第四位学生从位置 6 移动到位置 9 ,移动 3 次。
总共 0 + 1 + 3 + 3 = 7 次移动。示例 3:输入:seats = [2,2,6,6], students = [1,3,2,6]
输出:4
解释:学生移动方式如下:
- 第一位学生从位置 1 移动到位置 2 ,移动 1 次。
- 第二位学生从位置 3 移动到位置 6 ,移动 3 次。
- 第三位学生不移动。
- 第四位学生不移动。
总共 1 + 3 + 0 + 0 = 4 次移动。

提示:

  • n == seats.length == students.length
  • 1 <= n <= 100
  • 1 <= seats[i], students[j] <= 100

解题思路

使用贪心的思路,先将两个数组进行排序,例如对于下标最小的学生,我们必然需要找下标最小的座位,才能使得花费最小,如此类推,我们只要按学生的下标分配对应下标的座位就能使得移动次数最小,例如下标0的学生分配下标为0的座位。

代码

class Solution {public int minMovesToSeat(int[] seats, int[] students) {int res=0;Arrays.sort(seats);Arrays.sort(students);for (int i = 0; i < seats.length; i++) {res+=Math.abs(seats[i]-students[i]);}return res;}
}

5885. 使每位学生都有座位的最少移动次数相关推荐

  1. LeetCode简单题之使每位学生都有座位的最少移动次数

    题目 一个房间里有 n 个座位和 n 名学生,房间用一个数轴表示.给你一个长度为 n 的数组 seats ,其中 seats[i] 是第 i 个座位的位置.同时给你一个长度为 n 的数组 studen ...

  2. LeetCode 2037. 使每位学生都有座位的最少移动次数

    文章目录 1. 题目 2. 解题 1. 题目 一个房间里有 n 个座位和 n 名学生,房间用一个数轴表示. 给你一个长度为 n 的数组 seats ,其中 seats[i] 是第 i 个座位的位置. ...

  3. 2037. 使每位学生都有座位的最少移动次数

    一个房间里有 n 个座位和 n 名学生,房间用一个数轴表示.给你一个长度为 n 的数组 seats ,其中 seats[i] 是第 i 个座位的位置.同时给你一个长度为 n 的数组 students ...

  4. 排序——使每位学生都有座位的最少移动次数

    一.问题描述 一个房间里有 n 个座位和 n 名学生,房间用一个数轴表示.给你一个长度为 n 的数组 seats ,其中 seats[i] 是第 i 个座位的位置.同时给你一个长度为 n 的数组 st ...

  5. 练习:每位学生(姓名,年龄)都有自己的家庭住址。那么,既然有对应关系,则将学生对象和家庭住址存储到map集合中。学生作为键, 家庭住址作为值。

    /* 练习:每位学生(姓名,年龄)都有自己的家庭住址.那么,既然有对应关系, 则将学生对象和家庭住址存储到map集合中.学生作为键, 家庭住址作为值.> 注意,学生姓名相同并且年龄相同视为同一名 ...

  6. 不在上学了能不能考计算机二级,好多学生都问到底要不要参加计算机二级考试?...

    好多学生都问到底要不要参加计算机二级考试? 时间:2015-08-31 来源:科泰教育 曾经有人这么形容我们的学历,证书与文凭,说上学的时候好比就是做火车,而文凭,证书就是在这个火车上的车票.不同的毕 ...

  7. 衡水中学计算机老师,衡水中学资深老师:电脑阅卷本就是一种淘汰机制,学生都不以为然...

    原标题:衡水中学资深老师:电脑阅卷本就是一种淘汰机制,学生都不以为然 衡水中学老师:电脑阅卷也是一种淘汰机制 放眼国内的教育,可以说绝大部分的学生都逃不过两次重要的考试--中考和高考!而这两场考试都是 ...

  8. MIT投入10亿美元,让所有学生都学习AI课程

    文章来源:ATYUN AI平台 麻省理工学院(MIT)今天宣布了一项10亿美元的计划,旨在重塑学院的运作方式,并将AI作为所有学生课程的一部分.麻省理工学院院长L. Rafael Reif说,正在进行 ...

  9. 用python给老师排课表_怎样排出每位老师都满意的课表?附答案!

    原标题:怎样排出每位老师都满意的课表?附答案! 期末临近,寒假还会远吗? 操劳的老师已经开始煎熬倒计时了, 据说熬过这最后的时刻,就可以拥抱寒假,迎接春节呐. 虽说期末事多, 但老师们忙碌归忙碌, 却 ...

最新文章

  1. Redis主从握手流程,你真的了解了吗?
  2. ActionContextCleanUp作用
  3. Scala在挖财的应用实践
  4. python高级语法-套接字编程之UDP和TCP编程
  5. 春节直播大战搜狐另辟蹊径 40余场直播引领牛年直播综艺新风尚
  6. 使用tail和head读取字节流
  7. linux tty 软件包,Linux TTY framework(2)_软件架构
  8. Forever 0.5 (计算几何思维)
  9. 美图秀秀计算机教程,美图秀秀怎么抠图 美图秀秀抠图详细教程
  10. prometheus实战(一) 原理介绍
  11. Android设备上px(像素)、dpi(像素密度)、dip(密度无关像素)之间的关系
  12. C语言:解决九宫格问题
  13. 信息搜集-敏感信息泄露
  14. 有关汉字编码、拼音输入法 大搜罗
  15. HDU多校第六场——HDU6638 Snowy Smile(线段树区间合并)
  16. 从0-1的CTF比赛环境搭建过程
  17. 蒸妙熏蒸,让脚部保养通经络
  18. Windows 10(Office 2019)下安装mathtype 6.9/7.4以及相关冲突问题解决
  19. 计算机管理老是自动打开,win10系统打开设备管理器后一直自动刷新的设置方案...
  20. 实验: GVRP 配置,三层交换机通讯 ,VLAN 间路由,单臂路由与路由器子接口的配置,vlan-单臂路由技术

热门文章

  1. 两个栈实现一个队列与两个队列实现一个栈
  2. 【C language】动态数组的创建和使用
  3. 【汇编语言】(王爽)实验4解答
  4. Java集合(六):专用集合和遗留类
  5. 最强Android教程!2021年Android面经分享,大厂面经合集
  6. [币严区块链]以太坊(ETH)Dapp开发入门教程之宠物商店领养游戏
  7. Docker - 避免启动container后运行shell脚本执行完成后docker退出container
  8. Android常用的一些make命令(转载)--不错
  9. 24小时制时间格式和12小时制时间格式
  10. 有个需求mybatis 插入的时候不知道有哪些字段,需要动态的传入值和字段