
isoscelesTriangles
Bạn có vài cây gậy sticks
với chiều dài khác nhau. Có bao nhiêu tam giác cân bạn có thể tạo ra bằng cách sử dụng những cây gậy này? Đương nhiên mỗi cây gậy chỉ có thể được sử dụng một lần.
Một tam giác được coi là cân nếu hai cạnh của nó có độ dài bằng nhau.
Ví dụ
Với sticks = [5, 3, 5, 10, 1, 10, 10]
, đầu ra làisoscelesTriangles(sticks) = 15
.
Bạn có 1 cây gậy với độ dài là 1
, 1 cây gậy với độ dài là 3
, 2 cây gậy với độ dài là 5
và 3 cây gậy với độ dài là 10
.
- Sử dụng các cây gậy có độ dài là
5
, bạn có thể tạo ra một tam gíac với các cạnh5, 5, 1
và5, 5, 3
. Điều đó là không thể để tạo một tam giác cân với các cạnh5, 5, 10
vì5 + 5 <= 10
. - Sử dụng tất cả 3 cây gậy có độ dài là 10, bạn có thể tạo ra một tam giác với các cạnh
10, 10, 10
. - Có thể kết hặp một gậy có chiều dài
10
với bất kỳ cây gậy nào khác, tạo thành hình tam giác với các cạnh10, 10, 1
,10, 10, 3
và10, 10, 5
(×2, vì có 2 cây gậy có chiều dài5
). Vì có3
cách để chọn một cặp gậy có chiều dài10
, nên có3 * 4 = 12
tam giác có thể được tạo thành theo cách này.
Vì thế, đáp án cuối cùng là 2 + 1 + 12 = 15
.
Đầu vào/Đầu ra
-
[giới hạn thời gian chạy] 1 giây
-
[đầu vào] array.integer sticks
Điều kiện:
3 ≤ sticks.lengths ≤ 8000
,1≤ sticks[i] ≤ 50000
-
[đầu ra] integer
Số tam giác cân có thể được tạo ra từ các cây gậy cho trước. Đảm bảo răng đáp án sẽ phù hợp với số nguyên 32 bit.
Post Comment