Leetcode # 1051. Height Checker
- 2024.06.10
- ★ Easy LeetCode Merge Sort
Problem
https://leetcode.com/problems/height-checker
Solution: Merge Sort
Time Complexity: O(n * log(n)), n := len(heights)
Space Complexity: O(n)
(The input and output generally do not count towards the space complexity.)
class Solution: def heightChecker(self, heights: List[int]) -> int: def merge_sort(array): if len(array) < 2: return array mid = (len(array) + 1) // 2 left = merge_sort(array[:mid]) right = merge_sort(array[mid:]) ret = [] i = j = 0 while i < len(left) or j < len(right): if i == len(left) or \ (i < len(left) and j < len(right) and left[i] > right[j]): ret.append(right[j]) j += 1 else: ret.append(left[i]) i += 1 return ret expected = merge_sort(heights) return sum([(1 if heights[i] != expected[i] else 0) for i in range(len(heights))])
Last Updated on 2024/06/10 by A1go