Given an array nums with n objects colored red, white, or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white, and blue.
We will use the integers 0, 1, and 2 to represent the color red, white, and blue, respectively.
You must solve this problem without using the library's sort function.
빨간색, 흰색 또는 파란색으로 색상이 지정된 n개의 개체가 포함된 배열 nums가 주어지면 동일한 색상의 개체가 빨간색, 흰색, 파란색 순서로 인접하도록 해당 위치에서 정렬합니다.
우리는 정수 0, 1, 2를 사용하여 각각 빨간색, 흰색, 파란색을 나타냅니다.
라이브러리의 정렬 기능을 사용하지 않고 이 문제를 해결해야 합니다.
Example 1:
Input: nums = [2,0,2,1,1,0]
Output: [0,0,1,1,2,2]
Example 2:
Input: nums = [2,0,1]
Output: [0,1,2]
Constraints:
- n == nums.length
- 1 <= n <= 300
- nums[i] is either 0, 1, or 2.
코드
class Solution {
fun sortColors(nums: IntArray): Unit {
var i = 0
var l = 0
var r = nums.lastIndex
while (i <= r) {
if (nums[i] == 0) {
nums[l] = nums[i].also { nums[i] = nums[l] }
l++
} else if (nums[i] == 2) {
nums[r] = nums[i].also { nums[i] = nums[r] }
r--
i--
}
i++
}
}
}
'LeetCode > Array & Hashing' 카테고리의 다른 글
[LeetCode][Kotlin] 838. Push Dominoes (0) | 2024.10.18 |
---|---|
[LeetCode][Kotlin] 36. Valid Sudoku (0) | 2024.10.18 |
[LeetCode][Kotlin] String Encode and Decode (0) | 2024.10.18 |