判斷兩個陣列中是否存在相同的數字(Python)
阿新 • • 發佈:2019-02-03
給定兩個已排好序的陣列,判斷兩個陣列中是否存在相同的數字?
第一種辦法:遍歷其中一個數組中的每個元素,然後在第二個陣列中用二分查詢法,檢查是否存在相同的元素。其時間複雜度是O(nlog n).沒有利用陣列有序這個資訊。
第二種辦法:設定兩個下標,分別初始化為兩個陣列的第一個元素,比較當前兩個元素的大小,將較小元素的下標加一,如果有相同的數字,則返回True,如果直到陣列末尾還沒有相同的數字出現,則返回False。
程式如下:
def findSameNum(num1, num2): i = j = 0 while i <= len(num1)-1 and j <= len(num2)-1: if num1[i] == num2[j]: return True if num1[i] <= num2[j]: i += 1 else: j += 1 return False if __name__=="__main__": num1 = [1,2,3,4,5] num2 = [5,6,7,8] print(findSameNum(num1, num2))