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 4078710

Browse files
authored
feat: add java solution to lc problem: No.0135 (doocs#1617)
No.0135.Candy
1 parent c5f9d8d commit 4078710

File tree

3 files changed

+80
-17
lines changed

3 files changed

+80
-17
lines changed

‎solution/0100-0199/0135.Candy/README.md‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,36 @@ class Solution {
111111
}
112112
```
113113

114+
```java
115+
class Solution {
116+
public int candy(int[] ratings) {
117+
int n = ratings.length;
118+
int up = 0;
119+
int down = 0;
120+
int peak = 0;
121+
int candies = 1;
122+
for (int i = 1; i < n; i++) {
123+
if (ratings[i - 1] < ratings[i]) {
124+
up++;
125+
peak = up + 1;
126+
down = 0;
127+
candies += peak;
128+
} else if (ratings[i] == ratings[i - 1]) {
129+
peak = 0;
130+
up = 0;
131+
down = 0;
132+
candies++;
133+
} else {
134+
down++;
135+
up = 0;
136+
candies += down + (peak > down ? 0 : 1);
137+
}
138+
}
139+
return candies;
140+
}
141+
}
142+
```
143+
114144
### **C++**
115145

116146
```cpp

‎solution/0100-0199/0135.Candy/README_EN.md‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,36 @@ class Solution {
102102
}
103103
```
104104

105+
```java
106+
class Solution {
107+
public int candy(int[] ratings) {
108+
int n = ratings.length;
109+
int up = 0;
110+
int down = 0;
111+
int peak = 0;
112+
int candies = 1;
113+
for (int i = 1; i < n; i++) {
114+
if (ratings[i - 1] < ratings[i]) {
115+
up++;
116+
peak = up + 1;
117+
down = 0;
118+
candies += peak;
119+
} else if (ratings[i] == ratings[i - 1]) {
120+
peak = 0;
121+
up = 0;
122+
down = 0;
123+
candies++;
124+
} else {
125+
down++;
126+
up = 0;
127+
candies += down + (peak > down ? 0 : 1);
128+
}
129+
}
130+
return candies;
131+
}
132+
}
133+
```
134+
105135
### **C++**
106136

107137
```cpp
Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
class Solution {
22
public int candy(int[] ratings) {
33
int n = ratings.length;
4-
int[] left = new int[n];
5-
int[] right = new int[n];
6-
Arrays.fill(left, 1);
7-
Arrays.fill(right, 1);
8-
for (int i = 1; i < n; ++i) {
9-
if (ratings[i] > ratings[i - 1]) {
10-
left[i] = left[i - 1] + 1;
4+
int up = 0;
5+
int down = 0;
6+
int peak = 0;
7+
int candies = 1;
8+
for (int i = 1; i < n; i++) {
9+
if (ratings[i - 1] < ratings[i]) {
10+
up++;
11+
peak = up + 1;
12+
down = 0;
13+
candies += peak;
14+
} else if (ratings[i] == ratings[i - 1]) {
15+
peak = 0;
16+
up = 0;
17+
down = 0;
18+
candies++;
19+
} else {
20+
down++;
21+
up = 0;
22+
candies += down + (peak > down ? 0 : 1);
1123
}
1224
}
13-
for (int i = n - 2; i >= 0; --i) {
14-
if (ratings[i] > ratings[i + 1]) {
15-
right[i] = right[i + 1] + 1;
16-
}
17-
}
18-
int ans = 0;
19-
for (int i = 0; i < n; ++i) {
20-
ans += Math.max(left[i], right[i]);
21-
}
22-
return ans;
25+
return candies;
2326
}
2427
}

0 commit comments

Comments
(0)

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