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 `i`

seat. You are also given the array ^{th}`students`

of length `n`

, where `students[j]`

is the position of the `j`

student.^{th}

You may perform the following move any number of times:

- Increase or decrease the position of the
`i`

student by^{th}`1`

(i.e., moving the`i`

student from position^{th}`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:4Explanation:The students are moved as follows: - The first student is moved from from position 2 to position 1 using 1 move. - The second student is moved from from position 7 to position 5 using 2 moves. - The third student is moved from from position 4 to position 3 using 1 move. In total, 1 + 2 + 1 = 4 moves were used.

**Example 2:**

Input:seats = [4,1,5,9], students = [1,3,2,6]Output:7Explanation:The students are moved as follows: - The first student is not moved. - The second student is moved from from position 3 to position 4 using 1 move. - The third student is moved from from position 2 to position 5 using 3 moves. - The fourth student is moved from 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:4Explanation:The students are moved as follows: - The first student is moved from from position 1 to position 2 using 1 move. - The second student is moved from 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`

**Solution: Greedy**

Sort both arrays, move students[i] to seats[i].

Time complexity: O(nlogn)

Space complexity: O(1)

## C++

1 2 3 4 5 6 7 8 9 10 11 12 |
// Author: Huahua class Solution { public: int minMovesToSeat(vector<int>& seats, vector<int>& students) { sort(begin(seats), end(seats)); sort(begin(students), end(students)); int ans = 0; for (size_t i = 0; i < seats.size(); ++i) ans += abs(seats[i] - students[i]); return ans; } }; |

请尊重作者的劳动成果，转载请注明出处！花花保留对文章／视频的所有权利。

如果您喜欢这篇文章／视频，欢迎您捐赠花花。

If you like my articles / videos, donations are welcome.

## Be First to Comment