比较函数:functools.cmp_to_key(func)
leetcode经常用到该函数,记录一下。
435. 无重叠区间
该题需要把二维数组arr[…][i]从小到大排序,再把arr[i][…]从小到大排序。直接上code:
import functools
def compareRule(a, b):
if a[1] == b[1]: return a[0] - b[0]
return a[1] - b[1]
intervals = [[1,2], [2,3], [3,4], [1,3]]
intervals.sort(key=functools.cmp_to_key(compareRule))
print(intervals)
# ---------------output---------------------- #
#[[1, 2], [1, 3], [2, 3], [3, 4]]
1288. 删除被覆盖区间
该题需要把二维数组arr[i][…]从小到大排序,再把arr[…][i]从大到小排序。直接上code:
import functools
def compareRule(a, b):
if (a[0] == b[0]):
return b[1] - a[1]
return a[0] - b[0]
intervals = [[1,4],[3,6],[2,8],[1,6]]
intervals.sort(key=functools.cmp_to_key(compareRule))
print(intervals)
# ---------------output---------------------- #
#[[1, 6], [1, 4], [2, 8], [3, 6]]