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

雙指針?biāo)惴▽?shí)例5(有效三角形的個(gè)數(shù))

這篇具有很好參考價(jià)值的文章主要介紹了雙指針?biāo)惴▽?shí)例5(有效三角形的個(gè)數(shù))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

題目:

給定一個(gè)包含非負(fù)整數(shù)的數(shù)組?nums?,返回其中可以組成三角形三條邊的三元組個(gè)數(shù)。

示例 1:

輸入: nums = [2,2,3,4]
輸出: 3
解釋:有效的組合是: 
2,3,4 (使用第一個(gè) 2)
2,3,4 (使用第二個(gè) 2)
2,2,3

示例 2:

輸入: nums = [4,2,3,4]
輸出: 4

提示:

  • 1 <= nums.length <= 1000
  • 0 <= nums[i] <= 1000

算法原理:

三角形構(gòu)成條件:任意兩邊之和一定要大于第三邊

其實(shí)在判斷中,只需要判斷最小的兩邊和大于最長(zhǎng)的一邊即可

假設(shè) a<=b<=c

若要構(gòu)成三角形,a+b>c? a+c>b b+c>a

其實(shí)a+c>b b+c>a是顯然的,只需要判斷a+b>c即可

1 排序(升序)

2 依次固定一個(gè)最大數(shù)c

? ? 從c左邊的區(qū)間中選擇a,b,滿足a+b>c

? ? 左邊界left,右邊界right

? ? a 若是nums[left]+nums[right]>C

? ? ? ?則nums[right]與區(qū)間內(nèi)的任意一個(gè)(包括左邊界)組合都能>C,個(gè)數(shù)是right-left

? ? ? ?那么右邊界的所有組合都統(tǒng)計(jì)完畢,right--

? ? b 若是nums[left]+nums[right]<=C

? ? ? ?當(dāng)nums[left]+nums[right]<C,那么nums[left]與區(qū)間內(nèi)的任意一個(gè)組合都<C, left++

? ? ? ?當(dāng)nums[left]+nums[right]=C,那么left++,舍棄較小的數(shù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-674845.html

代碼實(shí)現(xiàn):

class Solution 
{
public:
    int triangleNumber(vector<int>& nums) 
    {
        int n = nums.size();
        sort(nums.begin(),nums.end());
        int count = 0;
        for(size_t i = n-1;i>=2;i--)//依次固定最大數(shù)C
        {
            int left = 0;
            int right = i-1;
            while(left<right)
            {
                if(nums[left]+nums[right]>nums[i])//a+b>c
                {
                   count+=right-left;
                   right--;
                }
                else //a+b<=c
                {
                    left++;
                }
            }
        }
        return count;
    }
};

到了這里,關(guān)于雙指針?biāo)惴▽?shí)例5(有效三角形的個(gè)數(shù))的文章就介紹完了。如果您還想了解更多內(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】雙指針妙解有效三角形的個(gè)數(shù)

    【LeetCode】雙指針妙解有效三角形的個(gè)數(shù)

    Problem: 611. 有效三角形的個(gè)數(shù) 首先我們來(lái)分析一下本題的思路 看到題目中給出的示例 題目的意思很簡(jiǎn)單,就是將給到的數(shù)字去做一個(gè)組合,然后看看這三條邊是否可以構(gòu)成三角形。那判斷的方法不用我說(shuō),相信大家如果讀過(guò)小學(xué)的話應(yīng)該都明白的,即 三角形兩邊之和大于第

    2024年02月10日
    瀏覽(18)
  • 「優(yōu)選算法刷題」:有效三角形的個(gè)數(shù)

    給定一個(gè)包含非負(fù)整數(shù)的數(shù)組? nums ?,返回其中可以組成三角形三條邊的三元組個(gè)數(shù)。 示例 1: 示例 2: 這道題,有一點(diǎn)挺新鮮的:構(gòu)成三角形的三條邊,僅需滿足 2 條最短邊之和大于等于第三條邊即可。 以前的羅根,就總是傻傻地求 3 次?? 今天這道題,算是又打開(kāi)了我新世

    2024年01月20日
    瀏覽(20)
  • 【編程題】有效三角形的個(gè)數(shù)

    給定一個(gè)包含非負(fù)整數(shù)的數(shù)組 nums ,返回其中可以組成三角形三條邊的三元組個(gè)數(shù)。 示例1: 輸入: nums = [2,2,3,4] 輸出: 3 **解釋:**有效的組合是: 2,3,4 (使用第一個(gè) 2) 2,3,4 (使用第二個(gè) 2) 2,2,3 示例2: 輸入: nums = [4,2,3,4] 輸出: 4 構(gòu)成三角形的條件 :任意兩條邊之和大于第三邊,其

    2024年02月11日
    瀏覽(24)
  • 力扣:611. 有效三角形的個(gè)數(shù)

    力扣:611. 有效三角形的個(gè)數(shù)

    今日為大家分享一道力扣611有效三角形的個(gè)數(shù)!本文將會(huì)為大家為大家講解題目,然后算法思路,最后再進(jìn)行代碼的實(shí)現(xiàn)!希望看完本文能對(duì)讀者有一定的收獲! 通過(guò)題目的描述可以看出,意思是給定一個(gè)數(shù)組,然后觀察數(shù)組中能元素組成三角形的個(gè)數(shù)! 題目上面那個(gè)例題

    2024年02月08日
    瀏覽(23)
  • 每日一題:LeetCode-611. 有效三角形的個(gè)數(shù)

    每日一題:LeetCode-611. 有效三角形的個(gè)數(shù)

    前言: ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ????如果說(shuō)代碼有靈魂,那么它的靈魂一定是???? 算法 ????,因此,想要寫出??優(yōu)美的程序??,核心算法是必不可少的,少年,你渴望力量嗎????,想掌握程序的靈魂嗎???那么就必須踏上這樣一條漫長(zhǎng)

    2024年02月01日
    瀏覽(53)
  • 面試算法100:三角形中最小路徑之和

    面試算法100:三角形中最小路徑之和

    在一個(gè)由數(shù)字組成的三角形中,第1行有1個(gè)數(shù)字,第2行有2個(gè)數(shù)字,以此類推,第n行有n個(gè)數(shù)字。例如,下圖是一個(gè)包含4行數(shù)字的三角形。如果每步只能前往下一行中相鄰的數(shù)字,請(qǐng)計(jì)算從三角形頂部到底部的路徑經(jīng)過(guò)的數(shù)字之和的最小值。從三角形頂部到底部的路徑數(shù)字之和

    2024年01月16日
    瀏覽(20)
  • 模型減面算法, 優(yōu)化模型三角形

    sp4cerat/Fast-Quadric-Mesh-Simplification: Mesh triangle reduction using quadrics (github.com) https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification

    2023年04月24日
    瀏覽(23)
  • 用動(dòng)態(tài)規(guī)劃算法編程實(shí)現(xiàn)數(shù)字三角形問(wèn)題

    用動(dòng)態(tài)規(guī)劃算法編程實(shí)現(xiàn)數(shù)字三角形問(wèn)題

    如下所示為一個(gè)數(shù)字三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 請(qǐng)編一個(gè)程序計(jì)算從頂至底的某一條路徑,使該路徑所經(jīng)過(guò)的數(shù)字的總和最大。 思路:建立兩個(gè)二位數(shù)組m(用來(lái)存儲(chǔ)數(shù)字三角形),sum(用來(lái)存儲(chǔ)數(shù)字三角形中每一個(gè)值得路徑值);sum[i] [j]從最后一行開(kāi)始存儲(chǔ); 如果當(dāng)前

    2024年02月11日
    瀏覽(20)
  • 貪心算法求數(shù)組中能組成三角形的最大周長(zhǎng)

    題目:三角形的最大周長(zhǎng) 給定由一些正數(shù)(代表長(zhǎng)度)組成的數(shù)組arr,返回由其中三個(gè)長(zhǎng)度組成的、面積不為零的三角形的最大周長(zhǎng)。 如果不能形成任何面積不為零的三角形,返回`0。 分析: 對(duì)數(shù)組排序,再?gòu)拇蟮叫∵x擇三個(gè)數(shù), 再判斷是否能構(gòu)成三角形,可以直接返回三數(shù)之

    2024年02月12日
    瀏覽(19)
  • 使用Python實(shí)現(xiàn)高效數(shù)據(jù)下采樣:詳解最大三角形三桶(LTTB)算法

    引言 在我們接觸大規(guī)模的數(shù)據(jù)集時(shí),數(shù)據(jù)的數(shù)量往往會(huì)讓人望而卻步。數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等領(lǐng)域的專業(yè)人員需要對(duì)這些數(shù)據(jù)進(jìn)行處理,以便更好地理解數(shù)據(jù),以及利用數(shù)據(jù)進(jìn)行預(yù)測(cè)。然而,處理大規(guī)模數(shù)據(jù)的計(jì)算成本往往非常高,這時(shí)候,就需要引入下采樣(Downsampling)的

    2024年02月14日
    瀏覽(29)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包