Übersicht

Gilt auf alle Premium-Mitgliedschaften Einfach den Code beim Bestellen angeben Der Rabatt wird dann automatisch abgezogen
Folgt unserem Link, um das Angebot kennenzulernen. Weitere Infos auf der Aktionsseite. Einen Gutscheincode benötigt ihr nicht.
Kein Gutscheincode erforderlich!
Gilt auf Premium-Mitgliedschaften # 1. 两数之和 ## 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 ## 示例 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6 输出:[1,2] 示例 3: 输入:nums = [3,3], target = 6 输出:[0,1] ## 提示 * 2 <= nums.length <= 104 * -109 <= nums[i] <= 109 * -109 <= target <= 109 * 只会存在一个有效答案 ## 进阶 你可以想出一个时间复杂度小于 O(n2) 的算法吗? ## 解题思路 最直接的方法是使用双重循环遍历数组中的每一对元素,检查它们的和是否等于目标值。这种方法的时间复杂度是O(n^2),其中n是数组的长度。 为了优化时间复杂度,我们可以使用哈希表(在Python中是字典)来存储每个元素的值和它的索引。这样,我们可以通过一次遍历来找到两个数的和等于目标值。具体步骤如下: 1. 初始化一个空的字典,用于存储元素的值和对应的索引。 2. 遍历数组,对于每个元素nums[i]: - 计算目标值与当前元素的差值:complement = target - nums[i]。 - 检查这个差值是否已经在字典中。如果是,那么我们已经找到了两个数,返回它们的索引。 - 如果不是,将当前元素的值和索引添加到字典中。 这种方法的时间复杂度是O(n),因为我们只需要遍历一次数组,每次查找和插入操作的时间复杂度都是O(1)。 ## 代码 python def twoSum(nums, target): num_map = {} for i, num in enumerate(nums): complement = target - num if complement in num_map: return [num_map[complement], i] num_map[num] = i return [] ## 测试 我们可以使用示例来测试这个函数: python # 示例 1 nums1 = [2,7,11,15] target1 = 9 print(twoSum(nums1, target1)) # 输出 [0, 1] # 示例 2 nums2 = [3,2,4] target2 = 6 print(twoSum(nums2, target2)) # 输出 [1, 2] # 示例 3 nums3 = [3,3] target3 = 6 print(twoSum(nums3, target3)) # 输出 [0, 1] 这个函数应该能够正确返回每个示例的答案。
Folgt unserem Link, um das Angebot kennenzulernen. Weitere Infos auf der Aktionsseite. Einen Gutscheincode benötigt ihr nicht.
Kein Gutscheincode erforderlich!
Folgt unserem Link, um das Angebot kennenzulernen. Weitere Infos auf der Aktionsseite. Einen Gutscheincode benötigt ihr nicht.
Kein Gutscheincode erforderlich!
Gilt mit der mobile App Partnersuche in Ihrer Umgebung Folgt unserem Link, um das Angebot kennenzulernen. Weitere Infos auf der Aktionsseite. Einen Gutscheincode benötigt ihr nicht.
Kein Gutscheincode erforderlich!