最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實(shí)現(xiàn)LeetCode(170.兩數(shù)之和之三 - 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))

 更新時間:2021年08月02日 16:05:39   作者:Grandyang  
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(170.兩數(shù)之和之三 - 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

[LeetCode] 170. Two Sum III - Data structure design 兩數(shù)之和之三 - 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

Design and implement a TwoSum class. It should support the following operations: add and find.

add - Add the number to an internal data structure.
find - Find if there exists any pair of numbers which sum is equal to the value.

Example 1:

add(1); add(3); add(5);
find(4) -> true
find(7) -> false

Example 2:

add(3); add(1); add(2);
find(3) -> true
find(6) -> false

這道題讓我們設(shè)計(jì)一個 Two Sum 的數(shù)據(jù)結(jié)構(gòu),跟 LeetCode 的第一道題 Two Sum 沒有什么太大的區(qū)別,作為 LeetCode 的首題,Two Sum 的名氣不小啊,正所謂平生不會 TwoSum,刷盡 LeetCode 也枉然。記得原來在背單詞的時候,總是記得第一個單詞是 abandon,結(jié)果有些人背來背去還在 abandon,有時候想想刷題其實(shí)跟背 GRE 紅寶書沒啥太大的區(qū)別,都是一個熟練功夫,并不需要有多高的天賦,只要下足功夫,都能達(dá)到一個很不錯的水平,套用一句雞湯問來激勵下吧,“有些時候我們的努力程度根本達(dá)不到需要拼天賦的地步”,好了,不閑扯了,來看題吧。不過這題也沒啥可講的,會做 Two Sum 的這題就很簡單了,先來看用 HashMap 的解法,把每個數(shù)字和其出現(xiàn)的次數(shù)建立映射,然后遍歷 HashMap,對于每個值,先求出此值和目標(biāo)值之間的差值t,然后需要分兩種情況來看,如果當(dāng)前值不等于差值t,那么只要 HashMap 中有差值t就返回 True,或者是當(dāng)差值t等于當(dāng)前值時,如果此時 HashMap 的映射次數(shù)大于1,則表示 HashMap 中還有另一個和當(dāng)前值相等的數(shù)字,二者相加就是目標(biāo)值,參見代碼如下:

解法一:

class TwoSum {
public:
    void add(int number) {
        ++m[number];
    }
    bool find(int value) {
        for (auto a : m) {
            int t = value - a.first;
            if ((t != a.first && m.count(t)) || (t == a.first && a.second > 1)) {
                return true;
            }
        }
        return false;
    }
private:
    unordered_map<int, int> m;
};

另一種解法不用 HashMap,而是 unordered_multiset 來做,但是原理和上面一樣,參見代碼如下:

解法二:

class TwoSum {
public:
    void add(int number) {
        s.insert(number);
    }
    bool find(int value) {
        for (auto a : s) {
            int cnt = a == value - a ? 1 : 0;
            if (s.count(value - a) > cnt) {
                return true;
            }
        }
        return false;
    }
private:
    unordered_multiset<int> s;
};

Github 同步地址:

https://github.com/grandyang/leetcode/issues/170

類似題目:

Two Sum

Unique Word Abbreviation

Two Sum IV - Input is a BST

參考資料:

https://leetcode.com/problems/two-sum-iii-data-structure-design/

https://leetcode.com/problems/two-sum-iii-data-structure-design/discuss/52015/Beats-100-Java-Code

https://leetcode.com/problems/two-sum-iii-data-structure-design/discuss/52035/My-solutions-in-Java-C%2B%2B-and-Python.-O(1)-time-for-add-O(n)-time-for-find-O(n)-space

到此這篇關(guān)于C++實(shí)現(xiàn)LeetCode(170.兩數(shù)之和之三 - 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))的文章就介紹到這了,更多相關(guān)C++實(shí)現(xiàn)兩數(shù)之和之三 - 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue自定義指令最佳實(shí)踐教程分享

    Vue自定義指令最佳實(shí)踐教程分享

    Vue?3?顯著增強(qiáng)了自定義指令的功能,使其封裝更加靈活和易用,本文將分為基礎(chǔ)和進(jìn)階兩部分,介紹如何實(shí)現(xiàn)常用的自定義指令,并提供最佳的項(xiàng)目組織方式,需要的朋友可以參考下
    2024-12-12
  • VSCode搭建STM32開發(fā)環(huán)境的方法步驟

    VSCode搭建STM32開發(fā)環(huán)境的方法步驟

    當(dāng)我們的工程文件比較大的時候,編譯一次代碼需要很久可能會花費(fèi)到四五分鐘,但是我們用vscode編寫和編譯的話時間就會大大縮減,本文就介紹一下VSCode搭建STM32開發(fā)環(huán)境,感興趣的可以了解一下
    2021-07-07
  • 如何在Qt中實(shí)現(xiàn)關(guān)于Json?的操作

    如何在Qt中實(shí)現(xiàn)關(guān)于Json?的操作

    JSON是一種輕量級數(shù)據(jù)交換格式,常用于客戶端和服務(wù)端的數(shù)據(jù)交互,不依賴于編程語言,在很多編程語言中都可以使用JSON,這篇文章主要介紹了在Qt中實(shí)現(xiàn)關(guān)于Json的操作,需要的朋友可以參考下
    2023-08-08
  • C++中的STL中map用法詳解(零基礎(chǔ)入門)

    C++中的STL中map用法詳解(零基礎(chǔ)入門)

    map在編程中是經(jīng)常使用的一個容器,本文來講解一下STL中的map,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++內(nèi)聯(lián)函數(shù)詳情

    C++內(nèi)聯(lián)函數(shù)詳情

    這篇文章主要介紹了C++內(nèi)聯(lián)函數(shù),文章主要圍繞C++內(nèi)聯(lián)函數(shù)的相關(guān)資料展開詳細(xì)內(nèi)容,需要的朋友可以參考一下,希望對大家有所幫助
    2021-11-11
  • C語言sizeof和strlen的指針和數(shù)組面試題詳解

    C語言sizeof和strlen的指針和數(shù)組面試題詳解

    strlen是函數(shù),字符串長度,不包括停止符。而sizeof則是內(nèi)存塊的大小,包括停止符。數(shù)組是一種數(shù)據(jù)類型,數(shù)據(jù)類型的本質(zhì)就是固定大小,內(nèi)存塊的別名??梢杂胹izeof()一般都是數(shù)據(jù)類型
    2022-04-04
  • C++實(shí)現(xiàn)LeetCode(168.求Excel表列名稱)

    C++實(shí)現(xiàn)LeetCode(168.求Excel表列名稱)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(168.求Excel表列名稱),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 最新VScode C/C++ 環(huán)境配置的詳細(xì)教程

    最新VScode C/C++ 環(huán)境配置的詳細(xì)教程

    這篇文章主要介紹了最新VScode C/C++ 環(huán)境配置的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • C++實(shí)現(xiàn)多人聊天室

    C++實(shí)現(xiàn)多人聊天室

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)多人聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 簡述c++ 發(fā)展史

    簡述c++ 發(fā)展史

    這篇文章主要介紹了c++ 發(fā)展的過程,幫助大家更好的了解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-08-08

最新評論

永州市| 米脂县| 新宁县| 应城市| 阿拉尔市| 万州区| 湟中县| 额敏县| 冀州市| 图们市| 大同市| 大庆市| 阳春市| 河南省| 芮城县| 仙居县| 铜鼓县| 青川县| 台北县| 崇左市| 永修县| 鹿邑县| 安仁县| 乐亭县| 万载县| 东乌珠穆沁旗| 苍溪县| 长沙市| 西宁市| 攀枝花市| 铜山县| 上杭县| 茌平县| 防城港市| 增城市| 宜都市| 利津县| 曲麻莱县| 白银市| 黄陵县| 个旧市|