611. Valid Triangle Number
Văn bản bài toán được dịch từ tiếng Nga theo ngôn ngữ giao diện. Mã không thay đổi.
Если задан số nguyên mảng nums, return количество выбранных из mảngа троек, которые могут образовывать треугольники, если принять их за длины сторон треугольника.
Ví dụ:
Input: nums = [2,2,3,4]
Output: 3
C# lời giải
đã khớp/gốcpublic class Solution {
public int TriangleNumber(int[] nums) {
Array.Sort(nums);
int n = nums.Length;
int count = 0;
for (int k = n - 1; k >= 2; k--) {
int i = 0;
int j = k - 1;
while (i < j) {
if (nums[i] + nums[j] > nums[k]) {
count += j - i;
j--;
} else {
i++;
}
}
}
return count;
}
}
C++ lời giải
bản nháp tự động, xem lại trước khi gửi#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public int TriangleNumber(vector<int>& nums) {
sort(nums.begin(), nums.end());
int n = nums.size();
int count = 0;
for (int k = n - 1; k >= 2; k--) {
int i = 0;
int j = k - 1;
while (i < j) {
if (nums[i] + nums[j] > nums[k]) {
count += j - i;
j--;
} else {
i++;
}
}
}
return count;
}
}
Java lời giải
đã khớp/gốcimport java.util.Arrays;
public class Solution {
public int triangleNumber(int[] nums) {
Arrays.sort(nums);
int n = nums.length;
int count = 0;
for (int k = n - 1; k >= 2; k--) {
int i = 0;
int j = k - 1;
while (i < j) {
if (nums[i] + nums[j] > nums[k]) {
count += j - i;
j--;
} else {
i++;
}
}
}
return count;
}
}
JavaScript lời giải
đã khớp/gốcfunction triangleNumber(nums) {
nums.sort((a, b) => a - b);
const n = nums.length;
let count = 0;
for (let k = n - 1; k >= 2; k--) {
let i = 0;
let j = k - 1;
while (i < j) {
if (nums[i] + nums[j] > nums[k]) {
count += j - i;
j--;
} else {
i++;
}
}
}
return count;
}
Go lời giải
đã khớp/gốcpackage main
import (
"sort"
)
func triangleNumber(nums []int) int {
sort.Ints(nums)
n := len(nums)
count := 0
for k := n - 1; k >= 2; k-- {
i := 0
j := k - 1
for i < j {
if nums[i] + nums[j] > nums[k] {
count += j - i
j--
} else {
i++
}
}
}
return count
}
Algorithm
Отсортируйте mảng nums.
Используйте три вложенных цикла: для каждого фиксированного третьего elementа, используйте два указателя для поиска подходящих первых двух elementов, которые удовлетворяют неравенству треугольника.
Увеличивайте счетчик на количество подходящих пар для каждого третьего elementа.
😎
Vacancies for this task
việc làm đang hoạt động with overlapping task tags are đã hiển thị.
Chưa có việc làm đang hoạt động.