兩數(shù)之和-leetcode

給定一個整數(shù)數(shù)組和一個目標值肚医,找出數(shù)組中和為目標值的兩個數(shù)。

你可以假設(shè)每個輸入只對應(yīng)一種答案向瓷,且同樣的元素不能被重復(fù)利用肠套。

示例:

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

因為nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
兩個思路:
1猖任、無腦雙循環(huán):直接循環(huán)每個數(shù)值對比一遍你稚。類似于冒泡。
時間復(fù)雜度O(n2)朱躺,空間復(fù)雜度O(1)
2刁赖、使用hashmap保存每個值與目標值的差值,這樣循環(huán)時根據(jù)map中是否有與當(dāng)前值相同的值长搀,即可得到兩數(shù)宇弛。
時間復(fù)雜度O(n),空間復(fù)雜度O(n)

第一種代碼實現(xiàn):

public int[] twoSum(int[] nums, int target) {
        int[] result = new int[2];
        boolean flag = false;
        for (int i = 0; i < nums.length - 1; i++) {
            for (int j = i+1; j < nums.length; j++) {
                if ((nums[i] + nums[j]) == target) {
                    result[0] = i;
                    result[1] = j;
                    flag = true;
                    break;
                }
            }
            if (flag) {
                break;
            }
        }
        return result;
    }

leetcode的執(zhí)行時間:55ms

第二種代碼實現(xiàn):

public int[] twoSum(int[] nums, int target) {
        int[] result = new int[2];

        //余數(shù)map源请,key是每個數(shù)字與target相差的數(shù)值涯肩,value是這個數(shù)字的下標+1,因為題目要求的下標是從1開始的
        Map<Integer, Integer> remainder = new HashMap<>(16);

        for (int i = 0; i < nums.length; i++) {
            //如果key有匹配的值巢钓,證明找到
            if (remainder.containsKey(nums[i])) {
                result[0] = i;
                result[1] = remainder.get(nums[i]);
                return result;
            }
            //不存在病苗,將這個值存入余數(shù)map中
            remainder.put(target - nums[i], i);
        }
        return null;
    }

leetcode執(zhí)行時間:8ms

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市症汹,隨后出現(xiàn)的幾起案子硫朦,更是在濱河造成了極大的恐慌,老刑警劉巖背镇,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咬展,死亡現(xiàn)場離奇詭異泽裳,居然都是意外死亡,警方通過查閱死者的電腦和手機破婆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門涮总,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祷舀,你說我怎么就攤上這事瀑梗。” “怎么了裳扯?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵抛丽,是天一觀的道長。 經(jīng)常有香客問我饰豺,道長亿鲜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任冤吨,我火速辦了婚禮蒿柳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘漩蟆。我一直安慰自己垒探,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布爆安。 她就那樣靜靜地躺著,像睡著了一般仔引。 火紅的嫁衣襯著肌膚如雪扔仓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天咖耘,我揣著相機與錄音翘簇,去河邊找鬼。 笑死儿倒,一個胖子當(dāng)著我的面吹牛版保,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播夫否,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼彻犁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凰慈?” 一聲冷哼從身側(cè)響起汞幢,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎微谓,沒想到半個月后森篷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體输钩,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年仲智,在試婚紗的時候發(fā)現(xiàn)自己被綠了买乃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡钓辆,死狀恐怖剪验,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岩馍,我是刑警寧澤碉咆,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站蛀恩,受9級特大地震影響疫铜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜双谆,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一壳咕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧顽馋,春花似錦谓厘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至熊痴,卻和暖如春他爸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背果善。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工诊笤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巾陕。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓讨跟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鄙煤。 傳聞我的和親對象是個殘疾皇子晾匠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 題目:給定一個整數(shù)數(shù)組和一個目標值混聊,找出數(shù)組中和為目標值的兩個數(shù)。你可以假設(shè)每個輸入只對應(yīng)一種答案,且同樣的元素不...
    0Xday閱讀 184評論 0 0
  • 算法思想貪心思想雙指針排序快速選擇堆排序桶排序荷蘭國旗問題二分查找搜索BFSDFSBacktracking分治動態(tài)...
    第六象限閱讀 3,057評論 0 0
  • 題目:兩數(shù)之和 描述: 示例: 方法一:循環(huán)嵌套句喜,時間復(fù)雜度O(n2),空間復(fù)雜度O(1) 代碼如下: 執(zhí)行時間:...
    韋弦Zhy閱讀 1,475評論 4 2
  • <center>#1 Two Sum</center> link Description:Given an arr...
    鐺鐺鐺clark閱讀 2,140評論 0 3
  • 謙虛预愤,何為謙虛? 謙為上咳胃,虛為下植康,旁人莫知爾傲骨,卻知爾圓潤展懈,此乃謙虛之道也销睁! 生者圓潤而謙虛,死者枯槁而堅強存崖,此...
    桐熹閱讀 377評論 1 2