我们有很多区域,每个区域都是从a到b的闭区间,现在我们要从每个区间中挑选至少2个数,那么最少挑选多少个?
输入描述:
第一行是N(N<10000),表示有N个区间,之间可以重复 然后每一行是ai,bi,持续N行,表示现在区间。均小于100000
输出描述:
输出一个数,代表最少选取数量。
输入例子1:
4 4 7 2 4 0 2 3 6
输出例子1:
4
参考贪心算法题目:
def checkRes(num, nums):
sol = []
sol.append(nums[0][1]-1)
sol.append(nums[0][1])
for i in range(num-1):
if nums[i+1][0] == sol[-1]: #区间相邻
sol.append(nums[i+1][1])
elif nums[i+1][0] > sol[-1]:#区间相离
sol.append(nums[i+1][1]-1)
sol.append(nums[i+1][1])
return len(sol)
if __name__=='__main__':
n = int(input())
res = []
for _ in range(n):
res.append(list(map(int,input().split())))
res.sort(key=lambda x:x[1]) #区间排序
print(checkRes(n,res))