Leetcode Contest 37
第一题Maximum Distance in Arrays
对于第i数组中,取出最大值a,最小值b,然后将(a, i)和(b, i)放进一个数组m里。将数组m按照第一个分量排序,那么对我们有用的只是数组m前面两个元素和后面两个元素。如果第一个元素和最后一个元素来自不一样的数组(第二个分量不一样),那么答案就是这两个元素的第一个分量的差。否则,我们要比较两种情况:第一个元素与倒数第二个元素,第二个元素与最后一个元素。
class Solution(object):
def maxDistance(self, arrays):
"""
:type arrays: List[List[int]]
:rtype: int
"""
m = []
for i, a in enumerate(arrays):
m.append((a[0], i))
m.append((a[-1], i))
m.sort(key=lambda x: x[0])
if m[0][1]!=m[-1][1]:
return m[-1][0]-m[0][0]
return max(m[-2][0]-m[0][0], m[-1][0]-m[1][0])