Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 745dd62

Browse files
feat: add solutions to lc problem: No.3024 (doocs#2310)
No.3024.Type of Triangle II
1 parent 3d68c8a commit 745dd62

File tree

7 files changed

+225
-8
lines changed

7 files changed

+225
-8
lines changed

‎solution/3000-3099/3024.Type of Triangle II/README.md‎

Lines changed: 79 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,24 +50,99 @@ nums[1] + nums[2] = 4 + 5 = 9 ,大于 nums[0] = 3 。
5050

5151
## 解法
5252

53-
### 方法一
53+
### 方法一:排序 + 分类讨论
54+
55+
我们先对数组进行排序,然后根据三角形的定义进行分类讨论即可。
56+
57+
- 如果最小的两个数之和小于等于最大的数,那么无法构成三角形,返回 "none"。
58+
- 如果最小的数等于最大的数,那么是等边三角形,返回 "equilateral"。
59+
- 如果最小的数等于中间的数或者中间的数等于最大的数,那么是等腰三角形,返回 "isosceles"。
60+
- 否则,返回 "scalene"。
61+
62+
时间复杂度 $O(1),ドル空间复杂度 $O(1)$。
5463

5564
<!-- tabs:start -->
5665

5766
```python
58-
67+
class Solution:
68+
def triangleType(self, nums: List[int]) -> str:
69+
nums.sort()
70+
if nums[0] + nums[1] <= nums[2]:
71+
return "none"
72+
if nums[0] == nums[2]:
73+
return "equilateral"
74+
if nums[0] == nums[1] or nums[1] == nums[2]:
75+
return "isosceles"
76+
return "scalene"
5977
```
6078

6179
```java
62-
80+
class Solution {
81+
public String triangleType(int[] nums) {
82+
Arrays.sort(nums);
83+
if (nums[0] + nums[1] <= nums[2]) {
84+
return "none";
85+
}
86+
if (nums[0] == nums[2]) {
87+
return "equilateral";
88+
}
89+
if (nums[0] == nums[1] || nums[1] == nums[2]) {
90+
return "isosceles";
91+
}
92+
return "scalene";
93+
}
94+
}
6395
```
6496

6597
```cpp
66-
98+
class Solution {
99+
public:
100+
string triangleType(vector<int>& nums) {
101+
sort(nums.begin(), nums.end());
102+
if (nums[0] + nums[1] <= nums[2]) {
103+
return "none";
104+
}
105+
if (nums[0] == nums[2]) {
106+
return "equilateral";
107+
}
108+
if (nums[0] == nums[1] || nums[1] == nums[2]) {
109+
return "isosceles";
110+
}
111+
return "scalene";
112+
}
113+
};
67114
```
68115
69116
```go
117+
func triangleType(nums []int) string {
118+
sort.Ints(nums)
119+
if nums[0]+nums[1] <= nums[2] {
120+
return "none"
121+
}
122+
if nums[0] == nums[2] {
123+
return "equilateral"
124+
}
125+
if nums[0] == nums[1] || nums[1] == nums[2] {
126+
return "isosceles"
127+
}
128+
return "scalene"
129+
}
130+
```
70131

132+
```ts
133+
function triangleType(nums: number[]): string {
134+
nums.sort((a, b) => a - b);
135+
if (nums[0] + nums[1] <= nums[2]) {
136+
return 'none';
137+
}
138+
if (nums[0] === nums[2]) {
139+
return 'equilateral';
140+
}
141+
if (nums[0] === nums[1] || nums[1] === nums[2]) {
142+
return 'isosceles';
143+
}
144+
return 'scalene';
145+
}
71146
```
72147

73148
<!-- tabs:end -->

‎solution/3000-3099/3024.Type of Triangle II/README_EN.md‎

Lines changed: 79 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,24 +46,99 @@ As all the sides are of different lengths, it will form a scalene triangle.
4646

4747
## Solutions
4848

49-
### Solution 1
49+
### Solution 1: Sorting + Case Discussion
50+
51+
First, we sort the array, and then we can classify and discuss according to the definition of a triangle.
52+
53+
- If the sum of the smallest two numbers is less than or equal to the largest number, then it cannot form a triangle, return "none".
54+
- If the smallest number is equal to the largest number, then it is an equilateral triangle, return "equilateral".
55+
- If the smallest number is equal to the middle number or the middle number is equal to the largest number, then it is an isosceles triangle, return "isosceles".
56+
- Otherwise, return "scalene".
57+
58+
The time complexity is $O(1),ドル and the space complexity is $O(1)$.
5059

5160
<!-- tabs:start -->
5261

5362
```python
54-
63+
class Solution:
64+
def triangleType(self, nums: List[int]) -> str:
65+
nums.sort()
66+
if nums[0] + nums[1] <= nums[2]:
67+
return "none"
68+
if nums[0] == nums[2]:
69+
return "equilateral"
70+
if nums[0] == nums[1] or nums[1] == nums[2]:
71+
return "isosceles"
72+
return "scalene"
5573
```
5674

5775
```java
58-
76+
class Solution {
77+
public String triangleType(int[] nums) {
78+
Arrays.sort(nums);
79+
if (nums[0] + nums[1] <= nums[2]) {
80+
return "none";
81+
}
82+
if (nums[0] == nums[2]) {
83+
return "equilateral";
84+
}
85+
if (nums[0] == nums[1] || nums[1] == nums[2]) {
86+
return "isosceles";
87+
}
88+
return "scalene";
89+
}
90+
}
5991
```
6092

6193
```cpp
62-
94+
class Solution {
95+
public:
96+
string triangleType(vector<int>& nums) {
97+
sort(nums.begin(), nums.end());
98+
if (nums[0] + nums[1] <= nums[2]) {
99+
return "none";
100+
}
101+
if (nums[0] == nums[2]) {
102+
return "equilateral";
103+
}
104+
if (nums[0] == nums[1] || nums[1] == nums[2]) {
105+
return "isosceles";
106+
}
107+
return "scalene";
108+
}
109+
};
63110
```
64111
65112
```go
113+
func triangleType(nums []int) string {
114+
sort.Ints(nums)
115+
if nums[0]+nums[1] <= nums[2] {
116+
return "none"
117+
}
118+
if nums[0] == nums[2] {
119+
return "equilateral"
120+
}
121+
if nums[0] == nums[1] || nums[1] == nums[2] {
122+
return "isosceles"
123+
}
124+
return "scalene"
125+
}
126+
```
66127

128+
```ts
129+
function triangleType(nums: number[]): string {
130+
nums.sort((a, b) => a - b);
131+
if (nums[0] + nums[1] <= nums[2]) {
132+
return 'none';
133+
}
134+
if (nums[0] === nums[2]) {
135+
return 'equilateral';
136+
}
137+
if (nums[0] === nums[1] || nums[1] === nums[2]) {
138+
return 'isosceles';
139+
}
140+
return 'scalene';
141+
}
67142
```
68143

69144
<!-- tabs:end -->
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public:
3+
string triangleType(vector<int>& nums) {
4+
sort(nums.begin(), nums.end());
5+
if (nums[0] + nums[1] <= nums[2]) {
6+
return "none";
7+
}
8+
if (nums[0] == nums[2]) {
9+
return "equilateral";
10+
}
11+
if (nums[0] == nums[1] || nums[1] == nums[2]) {
12+
return "isosceles";
13+
}
14+
return "scalene";
15+
}
16+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
func triangleType(nums []int) string {
2+
sort.Ints(nums)
3+
if nums[0]+nums[1] <= nums[2] {
4+
return "none"
5+
}
6+
if nums[0] == nums[2] {
7+
return "equilateral"
8+
}
9+
if nums[0] == nums[1] || nums[1] == nums[2] {
10+
return "isosceles"
11+
}
12+
return "scalene"
13+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public String triangleType(int[] nums) {
3+
Arrays.sort(nums);
4+
if (nums[0] + nums[1] <= nums[2]) {
5+
return "none";
6+
}
7+
if (nums[0] == nums[2]) {
8+
return "equilateral";
9+
}
10+
if (nums[0] == nums[1] || nums[1] == nums[2]) {
11+
return "isosceles";
12+
}
13+
return "scalene";
14+
}
15+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
def triangleType(self, nums: List[int]) -> str:
3+
nums.sort()
4+
if nums[0] + nums[1] <= nums[2]:
5+
return "none"
6+
if nums[0] == nums[2]:
7+
return "equilateral"
8+
if nums[0] == nums[1] or nums[1] == nums[2]:
9+
return "isosceles"
10+
return "scalene"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
function triangleType(nums: number[]): string {
2+
nums.sort((a, b) => a - b);
3+
if (nums[0] + nums[1] <= nums[2]) {
4+
return 'none';
5+
}
6+
if (nums[0] === nums[2]) {
7+
return 'equilateral';
8+
}
9+
if (nums[0] === nums[1] || nums[1] === nums[2]) {
10+
return 'isosceles';
11+
}
12+
return 'scalene';
13+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /