三角形計數(shù)

最近,在做lintcode 上的題目袁铐,有一些題還是很有意思的揭蜒。這個屬于中等難度的三角形計數(shù)。
題目:

給定一個整數(shù)數(shù)組剔桨,在該數(shù)組中屉更,尋找三個數(shù),分別代表三角形三條邊的長度洒缀,問瑰谜,可以尋找到多少組這樣的三個數(shù)來組成三角形欺冀?

首先,我們能想到的解法肯定是萨脑,將所有數(shù)組合隐轩,然后判斷。
代碼如下:

public class Solution {
    /**
     * @param S: A list of integers
     * @return: An integer
     */
    public int triangleCount(int S[]) {
        int result = 0;
        for (int i = 0; i < S.length - 2; i++) {
            for (int j = i + 1; j < S.length - 1; j++) {
                for (int k = j + 1; k < S.length; k++) {
                    if (trigangleJudge(S[i], S[j], S[k])) {
                        result++;
                    }
                }
            }
        }
        return result;
    }
    public  boolean trigangleJudge(int a, int b, int c) {
        if (a + b > c && a + c > b && b + c > a) {
            return true;
        } else {
            return false;
        }
    }
   
}

但是永遠沒有最好的解決辦法砚哗,所以我在網(wǎng)上一直想找一個更好的方法龙助,此時看到一篇博客。其思想是蛛芥,我們先找兩條邊提鸟,然后利用二分查找第三條邊。這位前輩是用Python寫的仅淑,這里我用java称勋。很佩服他的思路。放到這里供大家借鑒思考
代碼如下:

public class Solution {
    /**
     * @param S: A list of integers
     * @return: An integer
     */
    public int triangleCount(int S[]) {
     int result = 0;
        Arrays.sort(S);
        for (int i = 0; i < S.length; i++) {
            for (int j = i + 1; j < S.length; j++) {
                int l = i + 1;
                int r = j;
                int target = S[j] - S[i];
                while (l < r) {
                    int mid = (l + r) / 2;
                    if (S[mid] > target) {
                        r = mid;
                    } else {
                        l = mid + 1;
                    }

                }
                result += (j - l);
            }
        }
        return result;
    }

   
}

兩份解決方案的測試結果如下:

第一種.png
第二種.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末涯竟,一起剝皮案震驚了整個濱河市赡鲜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庐船,老刑警劉巖银酬,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異筐钟,居然都是意外死亡揩瞪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門篓冲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來李破,“玉大人,你說我怎么就攤上這事壹将∴凸ィ” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵诽俯,是天一觀的道長妇菱。 經(jīng)常有香客問我,道長暴区,這世上最難降的妖魔是什么闯团? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮颜启,結果婚禮上偷俭,老公的妹妹穿的比我還像新娘浪讳。我一直安慰自己缰盏,他們只是感情好,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著口猜,像睡著了一般负溪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上济炎,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天川抡,我揣著相機與錄音,去河邊找鬼须尚。 笑死崖堤,一個胖子當著我的面吹牛,可吹牛的內容都是我干的耐床。 我是一名探鬼主播密幔,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撩轰!你這毒婦竟也來了胯甩?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤堪嫂,失蹤者是張志新(化名)和其女友劉穎偎箫,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皆串,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡淹办,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了愚战。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娇唯。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖寂玲,靈堂內的尸體忽然破棺而出塔插,到底是詐尸還是另有隱情,我是刑警寧澤拓哟,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布想许,位于F島的核電站,受9級特大地震影響断序,放射性物質發(fā)生泄漏流纹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一违诗、第九天 我趴在偏房一處隱蔽的房頂上張望漱凝。 院中可真熱鬧,春花似錦诸迟、人聲如沸茸炒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壁公。三九已至感论,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間紊册,已是汗流浹背比肄。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留囊陡,地道東北人芳绩。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像撞反,于是被迫代替她去往敵國和親示括。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內容

  • 描述 給定一個整數(shù)數(shù)組痢畜,在該數(shù)組中垛膝,尋找三個數(shù),分別代表三角形三條邊的長度丁稀,問吼拥,可以尋找到多少組這樣的三個數(shù)來組成...
    6默默Welsh閱讀 239評論 0 0
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,748評論 0 33
  • 1 前言 一直想沿著圖像處理這條線建立一套完整的理論知識體系线衫,同時積累實際應用經(jīng)驗凿可。因此有了從使用AVFounda...
    RichardJieChen閱讀 5,675評論 5 12
  • 有少年妾意郎情花前月下 有月下書生款款提筆以夢為馬 有竹馬夙夜匪懈繡戶人家 有人家高堂斜臥與我區(qū)區(qū)足下 有足下綺羅...
    馭魂師閱讀 375評論 0 1
  • 01 文清 認識文清前枯跑,我經(jīng)常一個人,很孤獨白热,上學課余也沒有什么朋友敛助。文清,是我第一個真正意義上的朋友屋确,我真的很喜...
    我來自稀里糊涂星球閱讀 291評論 0 1