【每日一题Day73】LC2037使每位学生都有座位的最少移动次数 | 排序+贪心

简介: 思路:要使总移动次数最少,那么要将每个学生移动至离其最近的座位,因此将座位和学生的位置进行升序排序,每个学生需要的移动次数即为对应位置相减,累加返回最终结果

使每位学生都有座位的最少移动次数【LC2037】


There are n seats and n students in a room. You are given an array seats of length n, where seats[i] is the position of the ith seat. You are also given the array students of length n, where students[j] is the position of the jth student.


You may perform the following move any number of times:


Increase or decrease the position of the ith student by 1 (i.e., moving the ith student from position x to x + 1 or x - 1)

Return the minimum number of moves required to move each student to a seat such that no two students are in the same seat.


Note that there may be multiple seats or students in the same position at the beginning.


元旦快乐啦


  • 思路:要使总移动次数最少,那么要将每个学生移动至离其最近的座位,因此将座位和学生的位置进行升序排序,每个学生需要的移动次数即为对应位置相减,累加返回最终结果


  • 实现


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


。复杂度


  • 时间复杂度:O ( n )
  • 空间复杂度:O ( 1 )


  • 实现


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


。复杂度


  • 时间复杂度:O ( n )
  • 空间复杂度:O ( 1 )
目录
相关文章
|
7月前
【每日一题Day141】LC2379得到 K 个黑块的最少涂色次数 | 滑动窗口
【每日一题Day141】LC2379得到 K 个黑块的最少涂色次数 | 滑动窗口
43 0
|
7月前
【每日一题Day356】LC2678老人的数目 | 字符串
【每日一题Day356】LC2678老人的数目 | 字符串
53 0
|
7月前
【错题集-编程题】活动安排(贪心 - 区间)
【错题集-编程题】活动安排(贪心 - 区间)
|
7月前
除夕日的每日一题(字符个数统计,多数元素)
除夕日的每日一题(字符个数统计,多数元素)
43 2
|
7月前
|
Serverless
每日一题(统计每个月兔子的总数,数列的和)
每日一题(统计每个月兔子的总数,数列的和)
46 0
|
7月前
【每日一题Day167】LC1000合并石头的最低成本 | 区间dp
【每日一题Day167】LC1000合并石头的最低成本 | 区间dp
60 1
【每日一题Day167】LC1000合并石头的最低成本 | 区间dp
|
7月前
【每日一题Day314】LC1921消灭怪物的最大数量 | 贪心+排序
【每日一题Day314】LC1921消灭怪物的最大数量 | 贪心+排序
53 0
|
7月前
【每日一题Day355】LC1402 做菜顺序 | 贪心+排序
【每日一题Day355】LC1402 做菜顺序 | 贪心+排序
51 0
|
7月前
|
存储 算法
【每日一题Day310】LC1654到家的最少跳跃次数 | BFS
【每日一题Day310】LC1654到家的最少跳跃次数 | BFS
51 0
L2-009 抢红包 (25 分)(结构体排序)
L2-009 抢红包 (25 分)(结构体排序)
65 0
L2-009 抢红包 (25 分)(结构体排序)