LeetCode--Two Sum
阿新 • • 發佈:2018-12-12
語言:python Two Sum
分析:return indices of the two numbers。顯然,該問題應該採用類似HashMap方法解決,而python中字典這一資料型別正相當於HashMap,應該以數字number為鍵key,indices為值value。
class Solution: def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ # one-pass dict = {} for i, num in enumerate(nums): res = target - num if res in dict: return [dict[res], i] dict[num] = i;
試問如何除錯程式碼段呢?顯然補全完整!
舉個栗子:
import json import sys import io class Solution: def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ dic = {} for i, num in enumerate(nums): res = target - num if res in dic: return [dic[res], i] dic[num] = i def stringToIntegerList(input): return json.loads(input) def integerListToString(nums, len_of_list=None): if not len_of_list: len_of_list = len(nums) return json.dumps(nums[:len_of_list]) def main(): def readlines(): for line in io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8'): yield line.strip('\n') lines = readlines() while True: try: line = next(lines) nums = stringToIntegerList(line) line = next(lines) target = int(line) ret = Solution().twoSum(nums, target) out = integerListToString(ret) print(out) except StopIteration: break if __name__ == '__main__': main()
其實這個程式碼段現成的,可以拷到本地環境除錯除錯。