日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文巾解题 1. 两数之和

發布時間:2025/4/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文巾解题 1. 两数之和 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 題目描述

2 解題思路

2.1 方法1 暴力枚舉

class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:n = len(nums)for i in range(n):for j in range(i + 1, n):if nums[i] + nums[j] == target:return [i, j]return None

?

2.2 方法2 用index函數

? ? ? ?這種方法一開始在([3,2,4],6)這個測試樣例出現了一些的問題。這里出問題的原因是,一開始我沒有判斷列表里面的元素的兩倍是target的情況【以這個測試樣例為例,其實是沒有輸出的,但是因為i=0的時候,index也是0,所以它會返回(0,0)】。所以需要特判一下(遇到target/2的數的時候,如果i等于index,那么繼續遍歷,直到看到第二個target/2的數,那么那個數的i和index可以組合成為要返回的東西)。

????????當我們現在的數和我們要找的數下標是一樣的,那么就繼續往后面找(因為list.index永遠找到的是第一個位置,所以當出現[3,2,3],6的時候,第一次就不會顯示,第二次才會)

class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for i in range(len(nums)):x=nums[i]y=target-xif(y in nums):if(i==nums.index(y)):continueelse:return [i,nums.index(y)]return None

2.3 方法3 :哈希表

我們從頭遍歷一個數組,如果target-當前遍歷到的元素的值 正好在這個哈希表里面,那么返回哈希表里面存儲的下標和當前下標;否則,將當前元素值,及對應的下標存入哈希表中。

class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:dit={}for i in range(len(nums)):if(target-nums[i] in dit):return([dit[target-nums[i]],i])else:dit[nums[i]]=ireturn(None)

?

總結

以上是生活随笔為你收集整理的文巾解题 1. 两数之和的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。