Wandering_night 2025-04-30 09:58 采纳率: 47.1%
浏览 10

关于#python#的问题,请各位专家解答!



```python
"""给定一个整数数组 nums 和一个整数目标值 target,
请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。"""

def twoSum(nums, target):
    l = len(nums)
    for i in range(l):
        for j in range(l):
            if nums[i] + nums[j] != target:
                j += 1
            else:
                break
    print([i, j])

twoSum([2, 7, 11, 15], 9)

按理来说,应该输出 [0, 1],为什么运行后输出 [3, 4]?哪里出了问题?

```

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2025-04-30 09:58
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题解答

    你的问题是关于 Python 语言的,具体来说是要在一个整数数组中找到两个整数的下标,使它们的和等于目标值。

    根据你的代码,似乎你已经开始写了这个函数,但是还没有完成。下面是一个可能的解决方案:

    def two_sum(nums, target):
        num_dict = {}
        for i, num in enumerate(nums):
            if num in num_dict:
                return [num_dict[num], i]
            num_dict[target - num] = i
        return []
    

    这个函数使用了哈希表(dictionary)来存储数组中的每个元素和其下标。然后,它遍历数组,检查每个元素是否已经在哈希表中存在,如果存在,就返回这两个元素的下标。如果不存在,就将目标值减去当前元素,并将结果作为键存储在哈希表中。最后,如果找不到满足条件的元素,就返回一个空列表。

    你可以使用这个函数来解决你的问题,例如:

    nums = [2, 7, 11, 15]
    target = 9
    result = two_sum(nums, target)
    print(result)  # [0, 1]
    

    这将输出 [0, 1],表示数组中的第 0 个元素(2)和第 1 个元素(7)的和等于目标值 9。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月30日