611. Valid Triangle Number LeetCode Solution
In this guide, you will get 611. Valid Triangle Number LeetCode Solution with the best time and space complexity. The solution to Valid Triangle Number problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Valid Triangle Number solution in C++
- Valid Triangle Number solution in Java
- Valid Triangle Number solution in Python
- Additional Resources
Problem Statement of Valid Triangle Number
Given an integer array nums, return the number of triplets chosen from the array that can make triangles if we take them as side lengths of a triangle.
Example 1:
Input: nums = [2,2,3,4]
Output: 3
Explanation: Valid combinations are:
2,3,4 (using the first 2)
2,3,4 (using the second 2)
2,2,3
Example 2:
Input: nums = [4,2,3,4]
Output: 4
Constraints:
1 <= nums.length <= 1000
0 <= nums[i] <= 1000
Complexity Analysis
- Time Complexity: O(n^2)
- Space Complexity: O(1)
611. Valid Triangle Number LeetCode Solution in C++
class Solution {
public:
int triangleNumber(vector<int>& nums) {
if (nums.size() < 3)
return 0;
int ans = 0;
ranges::sort(nums);
for (int k = nums.size() - 1; k > 1; --k) {
int i = 0;
int j = k - 1;
while (i < j)
if (nums[i] + nums[j] > nums[k]) {
// (nums[i], nums[j], nums[k])
// (nums[i + 1], nums[j], nums[k])
// ...
// (nums[j - 1], nums[j], nums[k])
ans += j - i;
--j;
} else {
++i;
}
}
return ans;
}
};
/* code provided by PROGIEZ */
611. Valid Triangle Number LeetCode Solution in Java
class Solution {
public int triangleNumber(int[] nums) {
if (nums.length < 3)
return 0;
int ans = 0;
Arrays.sort(nums);
for (int k = nums.length - 1; k > 1; --k) {
int i = 0;
int j = k - 1;
while (i < j)
if (nums[i] + nums[j] > nums[k]) {
// (nums[i], nums[j], nums[k])
// (nums[i + 1], nums[j], nums[k])
// ...
// (nums[j - 1], nums[j], nums[k])
ans += j - i;
--j;
} else {
++i;
}
}
return ans;
}
}
// code provided by PROGIEZ
611. Valid Triangle Number LeetCode Solution in Python
class Solution:
def triangleNumber(self, nums: list[int]) -> int:
ans = 0
nums.sort()
for k in range(len(nums) - 1, 1, -1):
i = 0
j = k - 1
while i < j:
if nums[i] + nums[j] > nums[k]:
ans += j - i
j -= 1
else:
i += 1
return ans
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.