Skip to content

Commit dc7fb6e

Browse files
committed
D. J.:
- Added the leetcode problem and solution for 611
1 parent 06211bf commit dc7fb6e

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@
257257
- [518 Coin Change II](https://leetcode.com/problems/coin-change-ii/description/)
258258
- [530 Minimum Absolute Difference in BST](https://leetcode.com/problems/minimum-absolute-difference-in-bst/description/)
259259
- [594 Longest Harmonious Subsequence](https://leetcode.com/problems/longest-harmonious-subsequence/description/)
260+
- [611 Valid Triangle Number](https://leetcode.com/problems/valid-triangle-number/description/)
260261
- [637 Average of Levels in Binary Tree](https://leetcode.com/problems/average-of-levels-in-binary-tree/description/)
261262
- [643 Maximum Average Subarray I](https://leetcode.com/problems/maximum-average-subarray-i/description/)
262263
- [646 Maximum Length of Pair Chain](https://leetcode.com/problems/maximum-length-of-pair-chain/description/)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
"""Base class for all LeetCode Problems."""
6+
7+
def triangleNumber(self, nums: List[int]) -> int:
8+
"""
9+
Given an integer array nums, return the number of triplets chosen from the
10+
array that can make triangles if we take them as side lengths of a triangle.
11+
"""
12+
nums.sort()
13+
num_triangles = 0
14+
for k in range(2, len(nums)):
15+
i, j = 0, k - 1
16+
while i < j:
17+
if nums[i] + nums[j] > nums[k]:
18+
num_triangles += j - i
19+
j -= 1
20+
else:
21+
i += 1
22+
return num_triangles
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from typing import List
2+
3+
import pytest
4+
5+
from awesome_python_leetcode._611_valid_triangle_number import Solution
6+
7+
8+
@pytest.mark.parametrize(
9+
argnames=["nums", "expected"],
10+
argvalues=[
11+
([2, 2, 3, 4], 3),
12+
([4, 2, 3, 4], 4),
13+
],
14+
)
15+
def test_func(nums: List[int], expected: int):
16+
"""Tests the solution of a LeetCode problem."""
17+
num_triangles = Solution().triangleNumber(nums)
18+
assert num_triangles == expected

0 commit comments

Comments
 (0)