1 def main(): 2 n = int(raw_input()) 3 k = int(raw_input()) 4 5 k_arr = [] 6 min_dif = 9999999999 # 根据input要求,规定一个极大值 7 8 for _ in xrange(n): 9 k_arr.append(int(raw_input())) 10 11 k_arr.sort() # "有序化”解决很多问题 12 13 for _ in xrange(n-k+1): 14 if k_arr[_+k-1] - k_arr[_] < min_dif: # 比较“相应间隔” 15 min_dif = k_arr[_+k-1] - k_arr[_] 16 print min_dif 17 18 main()
Link:
https://www.hackerrank.com/challenges/angry-children
学习:
抽象化抽象化,然后找对应关系:
所有题目的根本就是抽象化,然后用最简单的方式去解决它
数学化,图像化
很多问题用数学公式表达出来,或者画画图,自然就明白了
“有序化”
对list有序的处理,能解决很多问题