Python是一種高級編程語言,被廣泛應用于數據分析、人工智能、網絡應用等領域。Python易學易用,具有強大的開發和調試工具,同時擁有豐富的第三方開源庫。
下面我們來看一道Python的試題,了解一下Python的基本語法和常用函數。
題目: 給定一個整數列表nums和一個整數目標值target,找出列表中相加等于目標值的兩個數的下標坐標,假定每個輸入只對應唯一答案,你不能重復利用這個數組中的元素。
首先,可以想到一種簡單粗暴的方法,就是對列表進行兩次嵌套遍歷,找到所有滿足條件的組合。代碼如下:
def find_two_sum(nums, target): n = len(nums) for i in range(n - 1): for j in range(i + 1, n): if nums[i] + nums[j] == target: return i, j nums = [2, 7, 11, 15] target = 9 print(find_two_sum(nums, target))
這種方法時間復雜度為O(n^2),當列表長度很大時會非常耗時。因此可以考慮使用哈希表來優化算法。
使用哈希表可以將時間復雜度降為O(n),我們可以遍歷一遍列表,將每個元素與其下標保存在字典中,然后再遍歷一遍列表,查找目標值與當前元素的差是否在字典中出現過。代碼如下:
def find_two_sum(nums, target): hash_map = {} for i, num in enumerate(nums): hash_map[num] = i for i, num in enumerate(nums): j = hash_map.get(target - num) if j is not None and i != j: return i, j nums = [2, 7, 11, 15] target = 9 print(find_two_sum(nums, target))
以上就是Python的一道試題講解,希望能對大家學習Python有所幫助。
上一篇css圖片縮放的代碼