兩數之和(Python and C 解法)

2022-08-24 19:39:17 字數 1469 閱讀 3344

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。

示例:給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

雙重迴圈複雜度較高。可以借助字典結構,當遍歷到某一數值num時,去查詢(target-num)是否存在於字典中,該查詢的時間複雜度是o(1)。

1

class

solution(object):

2 @staticmethod #

two_sum方法不涉及對類屬性的操作

3def

two_sum(nums, target):

4 num_store = dict() #

儲存key-value

5for i, num in

enumerate(nums):

6if target - num in

num_store:

7return [i, num_store[target -num]]

8else

:9 num_store[num] = i #

此處key是num,value是i,需要使用num定位其下標i

1011

if__name__ == '

__main__':

12 the_target = 9

13 the_nums = [2, 7, 11, 15]

14 s =solution()

15 result =s.two_sum(the_nums, the_target)

16print(result) #

[1, 0]

1 #include "

pch.h

"2 #include 3 #include 4 #include 5

using

namespace

std;67

class

solution

20else

21 hash[nums[i]] =i;22}

23//

return result;

//leetcode上必須有這一行的返回結果24}

25};

2627

intmain() ; //

初始化vector的方法

30solution s;

31for (auto res: s.twosum(thenums, thetarget))

34 }

三數之和(Python and C 解法)

給你乙個包含 n個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 請你找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。示例 給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 需要三個指標 當前...

兩數之和,三數之和

兩數之和 方法一 暴力 throw new illegalargumentexception 時間複雜度 o n 2 空間複雜度 o 1 public int twosum int nums,int target throw newillegalargumentexception no twosum...

leetcode 兩數之和與兩數之和

題目描述 給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。說明 返回的下標值 index1 和 index2 不是從零開始的。你可以假設每個輸入只對應唯一的答案,而且你不...