0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python如何解決Two Sum問題

汽車電子技術(shù) ? 來源:Python腳本 ? 作者:idlewith ? 2023-03-03 14:35 ? 次閱讀

LeetCode 是一個編程挑戰(zhàn)和教程網(wǎng)站,旨在幫助人們提高編碼和算法技能。LeetCode 第一題是 Two Sum,它是一個相對簡單的問題。

下面是用 Python 解決 Two Sum 問題的方法:

首先,需要創(chuàng)建一個函數(shù),它接受兩個參數(shù):一個整數(shù)數(shù)組和一個目標(biāo)值。該函數(shù)將用于查找數(shù)組中相加和等于目標(biāo)值的兩個數(shù)字。

def twoSum(nums, target):

接下來,需要初始化兩個變量 ij,分別設(shè)為 0。這兩個變量將用于跟蹤數(shù)組中相加和等于目標(biāo)值的兩個數(shù)字的索引

def twoSum(nums, target):
    i = 0
    j = 0

接下來,需要使用 while 循環(huán)來遍歷整數(shù)數(shù)組。在循環(huán)的每一次迭代中,檢查索引為 ij 的兩個數(shù)字的和是否等于目標(biāo)值。如果是,那么找到了相加和等于目標(biāo)值的兩個數(shù)字,并可以返回它們的索引。

def twoSum(nums, target):
    i = 0
    j = 0
    while i < len(nums):
        if nums[i] + nums[j] == target:
            return [i, j]

如果兩個數(shù)字的和不等于目標(biāo)值,那么需要增加 ij(或兩者)的值,以便轉(zhuǎn)到數(shù)組中的下一對數(shù)字??梢允褂靡粋€ if 語句來檢查 i 是否等于 j。如果是,那么需要將 j 的值加 1,以轉(zhuǎn)到數(shù)組中的下一對數(shù)字。如果 i 不等于 j,那么可以將 i 的值加 1,以轉(zhuǎn)到數(shù)組中的下一對數(shù)字。

def twoSum(nums, target):
    i = 0
    j = 0
    while i < len(nums):
        if nums[i] + nums[j] == target:
            return [i, j]
        if i == j:
            j += 1
        else:
            i += 1

最后,如果 while 循環(huán)完成后沒有找到相加和等于目標(biāo)值的數(shù)字,那么可以返回一個空列表,表示沒有找到這樣的數(shù)字。

def twoSum(nums, target):
    i = 0
    j = 0
    while i < len(nums):
        if nums[i] + nums[j] == target:
            return [i, j]
        if i == j:
            j += 1
        else:
            i += 1
    return []

就這樣!這是一種用 Python 解決 Two Sum 問題的簡單有效方法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4587

    瀏覽量

    92501
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3565

    瀏覽量

    93536
  • leetcode
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    2310
收藏 人收藏

    評論

    相關(guān)推薦

    安裝依賴的Python軟件包時報錯如何解決?

    安裝依賴的 Python 軟件包,出現(xiàn)了如下錯誤,請問如何解決,謝謝! Command \"E:/msys32/mingw32/bin/python2.7.exe E:/msys32
    發(fā)表于 06-26 07:32

    SUM2016

    `請教SUM2016的使用方法`
    發(fā)表于 05-25 14:18

    三種提高Python代碼性能的簡便方法

      在互聯(lián)網(wǎng)編程語言盛行的今天,Python是比較流行的編程語言之一。但很多程序員對于Python代碼性能的方法并不了解。今天這里主要為大家介紹三種提高Python代碼性能的簡便方法,即是一是基準(zhǔn)
    發(fā)表于 08-03 18:37

    cdl in總是報錯”in global routing, two instances overlap"怎么解決?

    做cdl in (包含若干個子電路)時,在正常導(dǎo)入若干個子電路后,每次導(dǎo)入到某一個電路,cdl in總是報錯”in global routing, two instances
    發(fā)表于 06-24 07:57

    如何使用Python對列表進(jìn)行求和?

    [tr]在本簡短的教程中,我們將介紹如何使用Python查找sum()[tr]一份名單。我們研究了各種方法來做到這一點,以及它們的局限性。[tr]本教程是我們在[tr]柔性[tr],就經(jīng)常使用的或有
    發(fā)表于 09-01 23:14

    Python for、while 等循環(huán)速度對比

    的操作,借助于 Python 內(nèi)置的 sum 函數(shù),可以獲得遠(yuǎn)大于 for 或 while 循環(huán)的執(zhí)行效率。import timeitdef while_loop(n=100_000_000): i
    發(fā)表于 03-25 16:05

    簡明python 教程

    Python語言是少有的一種可以稱得上即簡單又功能強大的編程語言。你將驚喜地發(fā)現(xiàn)Python語言是多么地簡單,它注重的是如何解決問題而不是編程語言的語法和結(jié)構(gòu)。Python的官方
    發(fā)表于 06-30 17:41 ?152次下載

    日月成科技推出16通道LED恒流驅(qū)動芯片SUM2016/SUM2022

    在IIC-China 2011深圳展會上,日月成科技針對行掃描顯示應(yīng)用推出具有高刷新率、高灰度表現(xiàn)、低系統(tǒng)功耗、低電源噪聲和EMI、兼容通用控制系統(tǒng)的創(chuàng)新型16通道LED恒流驅(qū)動芯片SUM2016/SUM2022
    發(fā)表于 02-23 09:07 ?8103次閱讀
    日月成科技推出16通道LED恒流驅(qū)動芯片<b class='flag-5'>SUM</b>2016/<b class='flag-5'>SUM</b>2022

    Two Sum系列問題的核心思想

    這樣,由于哈希表的查詢時間為 O(1),算法的時間復(fù)雜度降低到 O(N),但是需要 O(N) 的空間復(fù)雜度來存儲哈希表。不過綜合來看,是要比暴力解法高效的。
    的頭像 發(fā)表于 11-27 16:04 ?3151次閱讀
    <b class='flag-5'>Two</b> <b class='flag-5'>Sum</b>系列問題的核心思想

    何解python的異常處理方法總結(jié)

     python 編輯器推薦使用python tools for visual studio ,個人感覺是最好用的Python 編輯工具,比Wing 之類的好用多了。
    發(fā)表于 08-25 18:06 ?33次下載
    如<b class='flag-5'>何解</b>決<b class='flag-5'>python</b>的異常處理方法總結(jié)

    手動刪除python導(dǎo)致的問題如何解決?

    情況說明 在ubuntu server 20.02下安裝了python 2.7, 3.8.5, 3.9。python默認(rèn)被設(shè)置在3.8.5下, 3.9是之前為了驗證問題安裝的,現(xiàn)在并沒有在
    的頭像 發(fā)表于 07-28 09:37 ?6125次閱讀

    ROC RK3568 PC資源rknn ssd demo Android.md5sum

    電子發(fā)燒友網(wǎng)站提供《ROC RK3568 PC資源rknn ssd demo Android.md5sum.md5sum》資料免費下載
    發(fā)表于 09-20 09:39 ?15次下載
    ROC RK3568 PC資源rknn ssd demo Android.md5<b class='flag-5'>sum</b>

    AIO 3568J資源rknn ssd demo Android.md5sum

    電子發(fā)燒友網(wǎng)站提供《AIO 3568J資源rknn ssd demo Android.md5sum.md5sum》資料免費下載
    發(fā)表于 09-21 10:44 ?10次下載
    AIO 3568J資源rknn ssd demo Android.md5<b class='flag-5'>sum</b>

    Add Two Numbers

    ,任意一個鏈表的結(jié)束時其對應(yīng)數(shù)值設(shè)為0,直到兩個鏈表均結(jié)束循環(huán)停止。然后在循環(huán)內(nèi),獲得當(dāng)前位的值sum = x+y+carry和進(jìn)位carry = sum//10,并將新值sum%10接在now指針后面。
    的頭像 發(fā)表于 03-01 13:38 ?452次閱讀

    何解Python爬蟲中文亂碼問題?Python爬蟲中文亂碼的解決方法

    何解Python爬蟲中文亂碼問題?Python爬蟲中文亂碼的解決方法 在Python爬蟲過程中,遇到中文亂碼問題是常見的情況。亂碼問題主要是由于編碼不一致所導(dǎo)致的,下面我將詳細(xì)介紹
    的頭像 發(fā)表于 01-12 15:11 ?2057次閱讀