<filename>1.two-sum.py<gh_stars>1-10
#
# @lc app=leetcode.cn id=1 lang=python3
#
# [1] 两数之和
#
# https://leetcode-cn.com/problems/two-sum/description/
#
# algorithms
# Easy (44.30%)
# Total Accepted:    243.9K
# Total Submissions: 547.9K
# Testcase Example:  '[2,7,11,15]\n9'
#
# 给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出和为目标值的那 两个 整数，并返回他们的数组下标。
#
# 你可以假设每种输入只会对应一个答案。但是，你不能重复利用这个数组中同样的元素。
#
# 示例:
#
# 给定 nums = [2, 7, 11, 15], target = 9
#
# 因为 nums[0] + nums[1] = 2 + 7 = 9
# 所以返回 [0, 1]
#
#
#


class Solution:
    def twoSum(self, nums: 'List[int]', target: 'int') -> 'List[int]':
        

        i = 0
        len_nums = len(nums)

        res = []
        while i < len_nums:
            num = target - nums[i]
            
            nums[i] = '#'
            num_index = self._find_num(nums, num)
            
            if num_index != -1:
                return [i, num_index]

            i += 1

        return res

    def _find_num(self, nums, num):
        try:
            index = nums.index(num)
        except ValueError:
            return -1
        else:
            return index

<filename>1.two-sum.py<gh_stars>1-10
#
# @lc app=leetcode.cn id=1 lang=python3
#
# [1] 两数之和
#
# https://leetcode-cn.com/problems/two-sum/description/
#
# algorithms
# Easy (44.30%)
# Total Accepted:    243.9K
# Total Submissions: 547.9K
# Testcase Example:  '[2,7,11,15]\n9'
#
# 给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出和为目标值的那 两个 整数，并返回他们的数组下标。
#
# 你可以假设每种输入只会对应一个答案。但是，你不能重复利用这个数组中同样的元素。
#
# 示例:
#
# 给定 nums = [2, 7, 11, 15], target = 9
#
# 因为 nums[0] + nums[1] = 2 + 7 = 9
# 所以返回 [0, 1]
#
#
#


class Solution:
    def twoSum(self, nums: 'List[int]', target: 'int') -> 'List[int]':
        

        i = 0
        len_nums = len(nums)

        res = []
        while i < len_nums:
            num = target - nums[i]
            
            nums[i] = '#'
            num_index = self._find_num(nums, num)
            
            if num_index != -1:
                return [i, num_index]

            i += 1

        return res

    def _find_num(self, nums, num):
        try:
            index = nums.index(num)
        except ValueError:
            return -1
        else:
            return index

# # @lc app=leetcode.cn id=1 lang=python3 # # [1] 两数之和 # # https://leetcode-cn.com/problems/two-sum/description/ # # algorithms # Easy (44.30%) # Total Accepted:    243.9K # Total Submissions: 547.9K # Testcase Example:  '[2,7,11,15]\n9' # # 给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出和为目标值的那 两个 整数，并返回他们的数组下标。 # # 你可以假设每种输入只会对应一个答案。但是，你不能重复利用这个数组中同样的元素。 # # 示例: # # 给定 nums = [2, 7, 11, 15], target = 9 # # 因为 nums[0] + nums[1] = 2 + 7 = 9 # 所以返回 [0, 1] # # #