387. 最小差

387. 最小差

中文English

给定两个整数数组(第一个是数组 A,第二个是数组 B),在数组 A 中取 A[i],数组 B 中取 B[j],A[i] 和 B[j]两者的差越小越好(|A[i] - B[j]|), 返回最小差。

样例

样例 1:

输入: A = [3, 6, 7, 4], B = [2, 8, 9, 3] 
输出: 0
解释: A[0] - B[3] = 0

样例 2:

输入: A = [1, 2, 3, 4], B = [7, 6, 5]
输出: 1
解释: B[2] - A[3] = 1

挑战

时间复杂度 O(n log n)

 
 
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param A: An integer array
    @param B: An integer array
    @return: Their smallest difference.
    """
    def smallestDifference(self, A, B):
        # write your code here
        d = []
        for i in A:
            d.append([i,'A'])
        for j in B:
            d.append([j,'B'])
        d.sort()
    
        p = sys.maxsize
        for z in range(len(d)-1):
            if d[z][1] != d[z+1][1]:
                #每次取出差值,判断差值(永远都是相邻的A和B的值是最小差值)
                s = d[z+1][0] - d[z][0]
                if s < p:
                    p = s       
        return p

 

posted @ 2020-05-12 03:33  风不再来  阅读(159)  评论(0编辑  收藏  举报