国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LeetCode:454. 四數(shù)相加 II —— 哈希表為什么叫哈希表~

這篇具有很好參考價(jià)值的文章主要介紹了LeetCode:454. 四數(shù)相加 II —— 哈希表為什么叫哈希表~。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

??道阻且長(zhǎng),行則將至。??

??算法,不如說(shuō)它是一種思考方式??


算法專(zhuān)欄: ????123


hash是什么,哈希表為什么叫哈希表?
LeetCode:454. 四數(shù)相加 II —— 哈希表為什么叫哈希表~

一、??454. 四數(shù)相加 II

  • 題目描述:給你四個(gè)整數(shù)數(shù)組 nums1、nums2、nums3nums4 ,數(shù)組長(zhǎng)度都是 n ,請(qǐng)你計(jì)算有多少個(gè)元組 (i, j, k, l) 能滿足:
    0 <= i, j, k, l < n
    nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0
  • 來(lái)源:力扣(LeetCode)
  • 難度:中等
  • 提示:
    n == nums1.length
    n == nums2.length
    n == nums3.length
    n == nums4.length
    1 <= n <= 200
    -2^28 <= nums1[i], nums2[i], nums3[i], nums4[i] <= 2^28
  • 示例 1:
    輸入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]
    輸出:2
    解釋?zhuān)簝蓚€(gè)元組如下:
    1.(0, 0, 0, 1) -> nums1[0] + nums2[0] + nums3[0] + nums4[1] = 1 + (-2) + (-1) + 2 = 0
    2.(1, 1, 0, 0) -> nums1[1] + nums2[1] + nums3[0] + nums4[0] = 2 + (-1) + (-1) + 0 = 0

??解題

哈希表

4個(gè)數(shù)組如果使用暴力解法就需要4層for循環(huán),那時(shí)間復(fù)雜度將是O(n4)。
所以和上一題LeetCode:1. 兩數(shù)之和類(lèi)似,本題還是可以使用哈希表。我們可以把四個(gè)數(shù)組分為兩個(gè)組,分別對(duì)每個(gè)組求和(時(shí)間復(fù)雜度O(n2) ),將第一組求和結(jié)果加入到mapkey中,value就是出現(xiàn)的次數(shù)。第二組就用于尋找map中是否有相反數(shù),最后統(tǒng)計(jì)次數(shù)返回。

  • code
class Solution {
    public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
        Map<Integer,Integer> map=new HashMap<>();
        for (int i = 0; i < nums1.length; i++) {
            for (int j = 0; j < nums2.length; j++) {
                if(!map.containsKey(nums1[i]+nums2[j])){
                    map.put(nums1[i]+nums2[j],1);
                }else{
                    map.put(nums1[i]+nums2[j],map.get(nums1[i]+nums2[j])+1 );
                }
            }
        }
        int ans=0;

        for (int i = 0; i < nums3.length; i++) {
            for (int j = 0; j < nums4.length; j++) {
                if(map.containsKey(-(nums3[i]+nums4[j]))){
                    ans+=map.get(-(nums3[i]+nums4[j]));
                }
            }
        }

        return ans;
    }
}

LeetCode:454. 四數(shù)相加 II —— 哈希表為什么叫哈希表~
LeetCode:454. 四數(shù)相加 II —— 哈希表為什么叫哈希表~


鶴鳴亭絕句四首 · 辛棄疾
飽飯閑游繞小溪,卻將往事細(xì)尋思。
有時(shí)思到難思處,拍碎闌干人不知。

返回第一頁(yè)。?


?物有本末,事有終始,知所先后。??

LeetCode:454. 四數(shù)相加 II —— 哈希表為什么叫哈希表~

???????我的CSDN???????? 文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-423626.html

到了這里,關(guān)于LeetCode:454. 四數(shù)相加 II —— 哈希表為什么叫哈希表~的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【代碼隨想錄 | Leetcode | 第九天】哈希表 | 快樂(lè)數(shù) | 四數(shù)相加 II | 贖金信

    【代碼隨想錄 | Leetcode | 第九天】哈希表 | 快樂(lè)數(shù) | 四數(shù)相加 II | 贖金信

    歡迎來(lái)到小K的Leetcode|代碼隨想錄|專(zhuān)題化專(zhuān)欄,今天將為大家?guī)?lái)哈希法~快樂(lè)數(shù) | 四數(shù)相加 II | 贖金信的分享 ? ?題目鏈接點(diǎn)這里 編寫(xiě)一個(gè)算法來(lái)判斷一個(gè)數(shù) n 是不是快樂(lè)數(shù)。 「快樂(lè)數(shù)」 定義為: 對(duì)于一個(gè)正整數(shù),每一次將該數(shù)替換為它每個(gè)位置上的數(shù)字的平方和。 然后

    2024年02月13日
    瀏覽(49)
  • 【代碼隨想錄06】454. 四數(shù)相加 II 383. 贖金信 15. 三數(shù)之和 18. 四數(shù)之和

    【代碼隨想錄06】454. 四數(shù)相加 II 383. 贖金信 15. 三數(shù)之和 18. 四數(shù)之和

    題目描述 給你四個(gè)整數(shù)數(shù)組 nums1 、 nums2 、 nums3 和 nums4 ,數(shù)組長(zhǎng)度都是 n ,請(qǐng)你計(jì)算有多少個(gè)元組 (i, j, k, l) 能滿足: 0 = i, j, k, l n nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0 做題思路 本題可以使用哈希表, key 為 nums1[i] + nums2[j] 的和, value 為其出現(xiàn)的次數(shù)。然后再遍歷 nums3 和

    2024年01月16日
    瀏覽(28)
  • C++刷題第六天 454.四數(shù)相加II 383. 贖金信 15. 三數(shù)之和 18. 四數(shù)之和

    C++刷題第六天 454.四數(shù)相加II 383. 贖金信 15. 三數(shù)之和 18. 四數(shù)之和

    給你四個(gè)整數(shù)數(shù)組 nums1、nums2、nums3 和 nums4 ,數(shù)組長(zhǎng)度都是 n ,請(qǐng)你計(jì)算有多少個(gè)元組 (i, j, k, l) 能滿足: 0 = i, j, k, l n nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0 這個(gè)題目是哈希表應(yīng)用的經(jīng)典題目。 如果用暴力解法,四個(gè)數(shù)組,那肯定要四層for循環(huán)嵌套,時(shí)間復(fù)雜度就是n的四次方

    2024年02月13日
    瀏覽(24)
  • 我在代碼隨想錄|寫(xiě)代碼Day7之454.四數(shù)相加II ,? 383. 贖金信?,? 15. 三數(shù)之和?

    我在代碼隨想錄|寫(xiě)代碼Day7之454.四數(shù)相加II ,? 383. 贖金信?,? 15. 三數(shù)之和?

    題目 ?解題思路 四個(gè)數(shù)字相加的和為0,我們要選倆數(shù)組,讓他們的笛卡爾積儲(chǔ)存在哈希表中,然后我們要找的是這倆數(shù)和的相反數(shù),然后就是將后面?zhèn)z數(shù)組相加在后面的數(shù)組和中找相反數(shù). ? 解題思路 題目意思是讓在字符串1中找到字母組成字符串2所以找字符串1的數(shù)量.所以可以用

    2024年01月20日
    瀏覽(27)
  • [哈希專(zhuān)題]四數(shù)相加|贖金信|三數(shù)之和|四數(shù)之和

    此題思路:前兩個(gè)數(shù)求和sum,sum1=0-后兩數(shù)之和。判斷sum1是否在之前出現(xiàn)過(guò),此時(shí)用到哈希表,即判斷sum1是否在前兩個(gè)數(shù)中出現(xiàn)過(guò)。從而求得個(gè)數(shù)。 此題思路:定義兩個(gè)指針left和right,遍歷i,看三個(gè)位置的值是否為0。如果三個(gè)點(diǎn)值大于0,right--;如果小于0,left++。等于零即

    2024年01月17日
    瀏覽(18)
  • 算法刷題-哈希表-四數(shù)相加

    需要哈希的地方都能找到map的身影 力扣題目鏈接 給定四個(gè)包含整數(shù)的數(shù)組列表 A , B , C , D ,計(jì)算有多少個(gè)元組 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。 為了使問(wèn)題簡(jiǎn)單化,所有的 A, B, C, D 具有相同的長(zhǎng)度 N,且 0 ≤ N ≤ 500 。所有整數(shù)的范圍在 -2^28 到 2^28 - 1 之間,最終結(jié)果

    2024年02月08日
    瀏覽(22)
  • 得物面試:Redis用哈希槽,而不是一致性哈希,為什么?

    得物面試:Redis用哈希槽,而不是一致性哈希,為什么?

    在40歲老架構(gòu)師 尼恩的 讀者交流群 (50+)中,最近有小伙伴拿到了一線互聯(lián)網(wǎng)企業(yè)如得物、阿里、滴滴、極兔、有贊、希音、百度、網(wǎng)易、美團(tuán)的面試資格,遇到很多很重要的面試題: Redis為何用哈希槽而不用一致性哈希? 最近有小伙伴在面試網(wǎng)易,又遇到了相關(guān)的面試題。

    2024年02月21日
    瀏覽(25)
  • 【哈希表】為什么哈希表的插入/刪除/查找時(shí)間復(fù)雜度為O(1)

    【哈希表】為什么哈希表的插入/刪除/查找時(shí)間復(fù)雜度為O(1)

    在使用哈希表時(shí),往往會(huì)出現(xiàn)哈希沖突,此時(shí)就會(huì)通過(guò) 鏈表/紅黑樹(shù) 的方法來(lái)解決沖突,此時(shí)引入 鏈表/紅黑樹(shù) 那么時(shí)間復(fù)雜度就不是嚴(yán)格的O(1)。 我們首先要明白N代表什么,N是指問(wèn)題的規(guī)模大小。 在使用哈希表時(shí),所有的數(shù)據(jù)個(gè)數(shù)為N,鏈表的長(zhǎng)度肯定不是N,( 因?yàn)榇嬖?/p>

    2024年03月21日
    瀏覽(20)
  • LeetCode454. 4Sum II

    Given four integer arrays nums1, nums2, nums3, and nums4 all of length n, return the number of tuples (i, j, k, l) such that: 0 = i, j, k, l n nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0 Example 1: Input: nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2] Output: 2 Explanation: The two tuples are: (0, 0, 0, 1) - nums1[0] + nums2[0] + nums3[0] +

    2024年02月06日
    瀏覽(19)
  • LeetCode_Day6 | 四數(shù)相加||、贖金信、三數(shù)之和、四數(shù)之和!

    LeetCode_Day6 | 四數(shù)相加||、贖金信、三數(shù)之和、四數(shù)之和!

    詳情leetcode鏈接 解題步驟: 首先定義 map,key放a和b兩數(shù)之和,value 放a和b兩數(shù)之和出現(xiàn)的次數(shù)。 遍歷大A和大B數(shù)組,統(tǒng)計(jì)兩個(gè)數(shù)組元素之和,和出現(xiàn)的次數(shù),放到map中。 定義int變量count,用來(lái)統(tǒng)計(jì) a+b+c+d = 0 出現(xiàn)的次數(shù)。 在遍歷大C和大D數(shù)組,找到如果 0-(c+d) 在map中出現(xiàn)過(guò)的話

    2024年02月09日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包