lintcode 382 三角形計數

2022-03-29 14:28:09 字數 588 閱讀 3715

給定乙個整數陣列,在該陣列中,尋找三個數,分別代表三角形三條邊的長度,問,可以尋找到多少組這樣的三個數來組成三角形?

樣例例如,給定陣列 s = ,返回 3

其中我們可以找到的三個三角形為:

給定陣列 s = , 返回 4

其中我們可以找到的三個三角形為:

標籤

思路

三角形兩邊之和大於第三邊,先將陣列排序,然後定位最長邊與最短邊,然後尋找第三條邊的數量,第三條邊滿足:

最長邊 >= 第三條邊 > 最長邊 - 最短邊

可以利用二分查詢尋找最短的第三條邊的下標,然後和最長邊下標之差就是第三條邊的數量

最後繼續定位定位最長邊與最短邊

code

class solution 

int result = 0;

sort(s.begin(), s.end());

for (int i = 0; i < size - 1; i++)

else

}result += (j - low);}}

return result;

}};

382 三角形計數 LintCode

給定乙個整數陣列,在該陣列中,尋找三個數,分別代表三角形三條邊的長度,問,可以尋找到多少組這樣的三個數來組成三角形?例如,給定陣列 s 返回3 其中我們可以找到的三個三角形為 給定陣列 s 返回4 其中我們可以找到的三個三角形為 原理 三角形兩邊之和大於第三邊,一種思路是暴力迴圈三次,這裡作不討論 ...

Lintcode 109 數學三角形

給定乙個數字三角形,找到從頂部到底部的最小路徑和。每一步可以移動到下面一行的相鄰數字上。注意事項 如果你只用額外空間複雜度o n 的條件下完成可以獲得加分,其中n是數字三角形的總行數。分析 如果從上往下進行計算,會發現越是接近底層的子問題被重複計算的次數越多,為了避免重複的計算,使計算更加簡潔。所以...

計蒜課 統計三角形

給n根不同長度的木棍,求這些木棍一共能拼出多少個不同的不等邊三角形。注意在拼三角形的時候一定要用上所有的n根木棍。不同的定義是至少有一條邊的長度不相同 不等邊的定義是三條邊都不相等。輸入格式 第一行為資料組數t,1 t 15 接下來每行資料佔兩行,第一行為木棍的數量n 1 n 15 第二行有n個正整...