2037. Minimum Number of Moves to Seat Everyone LeetCode Solution

In this guide, you will get 2037. Minimum Number of Moves to Seat Everyone LeetCode Solution with the best time and space complexity. The solution to Minimum Number of Moves to Seat Everyone problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.

Table of Contents

  1. Problem Statement
  2. Complexity Analysis
  3. Minimum Number of Moves to Seat Everyone solution in C++
  4. Minimum Number of Moves to Seat Everyone solution in Java
  5. Minimum Number of Moves to Seat Everyone solution in Python
  6. Additional Resources
2037. Minimum Number of Moves to Seat Everyone LeetCode Solution image

Problem Statement of Minimum Number of Moves to Seat Everyone

There are n availabe seats and n students standing 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.

Example 1:

Input: seats = [3,1,5], students = [2,7,4]
Output: 4
Explanation: The students are moved as follows:
– The first student is moved from position 2 to position 1 using 1 move.
– The second student is moved from position 7 to position 5 using 2 moves.
– The third student is moved from position 4 to position 3 using 1 move.
In total, 1 + 2 + 1 = 4 moves were used.

See also  171. Excel Sheet Column Number LeetCode Solution

Example 2:

Input: seats = [4,1,5,9], students = [1,3,2,6]
Output: 7
Explanation: The students are moved as follows:
– The first student is not moved.
– The second student is moved from position 3 to position 4 using 1 move.
– The third student is moved from position 2 to position 5 using 3 moves.
– The fourth student is moved from position 6 to position 9 using 3 moves.
In total, 0 + 1 + 3 + 3 = 7 moves were used.

Example 3:

Input: seats = [2,2,6,6], students = [1,3,2,6]
Output: 4
Explanation: Note that there are two seats at position 2 and two seats at position 6.
The students are moved as follows:
– The first student is moved from position 1 to position 2 using 1 move.
– The second student is moved from position 3 to position 6 using 3 moves.
– The third student is not moved.
– The fourth student is not moved.
In total, 1 + 3 + 0 + 0 = 4 moves were used.

Constraints:

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

Complexity Analysis

  • Time Complexity: O(\texttt{sort})
  • Space Complexity: O(n)

2037. Minimum Number of Moves to Seat Everyone LeetCode Solution in C++

class Solution {
 public:
  int minMovesToSeat(vector<int>& seats, vector<int>& students) {
    int ans = 0;

    ranges::sort(seats);
    ranges::sort(students);

    for (int i = 0; i < seats.size(); ++i)
      ans += abs(seats[i] - students[i]);

    return ans;
  }
};
/* code provided by PROGIEZ */

2037. Minimum Number of Moves to Seat Everyone LeetCode Solution in Java

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;
  }
}
// code provided by PROGIEZ

2037. Minimum Number of Moves to Seat Everyone LeetCode Solution in Python

class Solution:
  def minMovesToSeat(self, seats: list[int], students: list[int]) -> int:
    return sum(
        abs(seat - student) for seat,
        student in zip(sorted(seats),
                       sorted(students)))
# code by PROGIEZ

Additional Resources

See also  1251. Average Selling Price LeetCode Solution

Happy Coding! Keep following PROGIEZ for more updates and solutions.