Skip to content

Commit d3f452c

Browse files
committedJan 25, 2022
feat: add solutions to lc problems: No.0941,2114
* No.0941.Valid Mountain Array * No.2114.Maximum Number of Words Found in Sentences
1 parent acc5aa2 commit d3f452c

File tree

12 files changed

+358
-25
lines changed

12 files changed

+358
-25
lines changed
 

‎solution/0900-0999/0941.Valid Mountain Array/README.md

+54-2
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ class Solution:
7272
if n < 3:
7373
return False
7474
l, r = 0, n - 1
75-
while l + 1 < n - 1 and arr[l] < arr[l + 1]:
75+
while l + 1 < n - 1 and arr[l] < arr[l + 1]:
7676
l += 1
77-
while r - 1 > 0 and arr[r] < arr[r - 1]:
77+
while r - 1 > 0 and arr[r] < arr[r - 1]:
7878
r -= 1
7979
return l == r
8080
```
@@ -84,9 +84,61 @@ class Solution:
8484
<!-- 这里可写当前语言的特殊实现逻辑 -->
8585

8686
```java
87+
class Solution {
88+
89+
public boolean validMountainArray(int[] arr) {
90+
int n = arr.length;
91+
if (n < 3) {
92+
return false;
93+
}
94+
int l = 0, r = n - 1;
95+
while (l + 1 < n - 1 && arr[l] < arr[l + 1]) {
96+
++l;
97+
}
98+
while (r - 1 > 0 && arr[r] < arr[r - 1]) {
99+
--r;
100+
}
101+
return l == r;
102+
}
103+
}
87104

88105
```
89106

107+
### **C++**
108+
109+
```cpp
110+
class Solution {
111+
public:
112+
bool validMountainArray(vector<int>& arr) {
113+
int n = arr.size();
114+
if (n < 3) return 0;
115+
int l = 0, r = n - 1;
116+
while (l + 1 < n - 1 && arr[l] < arr[l + 1]) ++l;
117+
while (r - 1 > 0 && arr[r] < arr[r - 1]) --r;
118+
return l == r;
119+
}
120+
};
121+
```
122+
123+
### **Go**
124+
125+
```go
126+
func validMountainArray(arr []int) bool {
127+
n := len(arr)
128+
if n < 3 {
129+
return false
130+
}
131+
l, r := 0, n-1
132+
for l+1 < n-1 && arr[l] < arr[l+1] {
133+
l++
134+
}
135+
for r-1 > 0 && arr[r] < arr[r-1] {
136+
r--
137+
}
138+
return l == r
139+
}
140+
```
141+
90142
### **...**
91143

92144
```

‎solution/0900-0999/0941.Valid Mountain Array/README_EN.md

+54-2
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,71 @@ class Solution:
5050
if n < 3:
5151
return False
5252
l, r = 0, n - 1
53-
while l + 1 < n - 1 and arr[l] < arr[l + 1]:
53+
while l + 1 < n - 1 and arr[l] < arr[l + 1]:
5454
l += 1
55-
while r - 1 > 0 and arr[r] < arr[r - 1]:
55+
while r - 1 > 0 and arr[r] < arr[r - 1]:
5656
r -= 1
5757
return l == r
5858
```
5959

6060
### **Java**
6161

6262
```java
63+
class Solution {
64+
65+
public boolean validMountainArray(int[] arr) {
66+
int n = arr.length;
67+
if (n < 3) {
68+
return false;
69+
}
70+
int l = 0, r = n - 1;
71+
while (l + 1 < n - 1 && arr[l] < arr[l + 1]) {
72+
++l;
73+
}
74+
while (r - 1 > 0 && arr[r] < arr[r - 1]) {
75+
--r;
76+
}
77+
return l == r;
78+
}
79+
}
6380

6481
```
6582

83+
### **C++**
84+
85+
```cpp
86+
class Solution {
87+
public:
88+
bool validMountainArray(vector<int>& arr) {
89+
int n = arr.size();
90+
if (n < 3) return 0;
91+
int l = 0, r = n - 1;
92+
while (l + 1 < n - 1 && arr[l] < arr[l + 1]) ++l;
93+
while (r - 1 > 0 && arr[r] < arr[r - 1]) --r;
94+
return l == r;
95+
}
96+
};
97+
```
98+
99+
### **Go**
100+
101+
```go
102+
func validMountainArray(arr []int) bool {
103+
n := len(arr)
104+
if n < 3 {
105+
return false
106+
}
107+
l, r := 0, n-1
108+
for l+1 < n-1 && arr[l] < arr[l+1] {
109+
l++
110+
}
111+
for r-1 > 0 && arr[r] < arr[r-1] {
112+
r--
113+
}
114+
return l == r
115+
}
116+
```
117+
66118
### **...**
67119

68120
```
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,11 @@
11
class Solution {
22
public:
3-
bool validMountainArray(vector<int>& A) {
4-
if (A.size() < 3)
5-
return false ;
6-
7-
A.push_back(A[0]) ;
8-
int lastIndex = A.size()-2 ;
9-
int p ;
10-
for (p = 0; A[p] < A[p+1]; ++p)
11-
;
12-
if (p == lastIndex || 0 == p)
13-
return false ;
14-
A[A.size()-1] = A[p] ;
15-
for (; A[p] > A[p+1]; ++p)
16-
;
17-
18-
return p == lastIndex ;
3+
bool validMountainArray(vector<int>& arr) {
4+
int n = arr.size();
5+
if (n < 3) return 0;
6+
int l = 0, r = n - 1;
7+
while (l + 1 < n - 1 && arr[l] < arr[l + 1]) ++l;
8+
while (r - 1 > 0 && arr[r] < arr[r - 1]) --r;
9+
return l == r;
1910
}
20-
};
11+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
func validMountainArray(arr []int) bool {
2+
n := len(arr)
3+
if n < 3 {
4+
return false
5+
}
6+
l, r := 0, n-1
7+
for l+1 < n-1 && arr[l] < arr[l+1] {
8+
l++
9+
}
10+
for r-1 > 0 && arr[r] < arr[r-1] {
11+
r--
12+
}
13+
return l == r
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public boolean validMountainArray(int[] arr) {
3+
int n = arr.length;
4+
if (n < 3) {
5+
return false;
6+
}
7+
int l = 0, r = n - 1;
8+
while (l + 1 < n - 1 && arr[l] < arr[l + 1]) {
9+
++l;
10+
}
11+
while (r - 1 > 0 && arr[r] < arr[r - 1]) {
12+
--r;
13+
}
14+
return l == r;
15+
}
16+
}

‎solution/0900-0999/0941.Valid Mountain Array/Solution.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ def validMountainArray(self, arr: List[int]) -> bool:
44
if n < 3:
55
return False
66
l, r = 0, n - 1
7-
while l + 1 < n - 1 and arr[l] < arr[l + 1]:
7+
while l + 1 < n - 1 and arr[l] < arr[l + 1]:
88
l += 1
9-
while r - 1 > 0 and arr[r] < arr[r - 1]:
9+
while r - 1 > 0 and arr[r] < arr[r - 1]:
1010
r -= 1
1111
return l == r

‎solution/2100-2199/2114.Maximum Number of Words Found in Sentences/README.md

+75-1
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,96 @@
4949

5050
<!-- 这里可写通用的实现逻辑 -->
5151

52+
返回最大空格数量再加 1 即可。
53+
5254
<!-- tabs:start -->
5355

5456
### **Python3**
5557

5658
<!-- 这里可写当前语言的特殊实现逻辑 -->
5759

5860
```python
59-
61+
class Solution:
62+
def mostWordsFound(self, sentences: List[str]) -> int:
63+
return 1 + max(s.count(' ') for s in sentences)
6064
```
6165

6266
### **Java**
6367

6468
<!-- 这里可写当前语言的特殊实现逻辑 -->
6569

6670
```java
71+
class Solution {
72+
73+
public int mostWordsFound(String[] sentences) {
74+
int ans = 0;
75+
for (String s : sentences) {
76+
ans = Math.max(ans, 1 + count(s, ' '));
77+
}
78+
return ans;
79+
}
80+
81+
private int count(String s, char c) {
82+
int cnt = 0;
83+
for (char ch : s.toCharArray()) {
84+
if (ch == c) {
85+
++cnt;
86+
}
87+
}
88+
return cnt;
89+
}
90+
}
91+
92+
```
93+
94+
### **C++**
95+
96+
```cpp
97+
class Solution {
98+
public:
99+
int mostWordsFound(vector<string>& sentences) {
100+
int ans = 0;
101+
for (string& s : sentences)
102+
ans = max(ans, 1 + count(s, ' '));
103+
return ans;
104+
}
105+
106+
int count(string s, char c) {
107+
int cnt = 0;
108+
for (char& ch : s)
109+
if (ch == c)
110+
++cnt;
111+
return cnt;
112+
}
113+
};
114+
```
67115

116+
### **Go**
117+
118+
```go
119+
func mostWordsFound(sentences []string) int {
120+
count := func(s string, c rune) int {
121+
cnt := 0
122+
for _, ch := range s {
123+
if ch == c {
124+
cnt++
125+
}
126+
}
127+
return cnt
128+
}
129+
ans := 0
130+
for _, s := range sentences {
131+
ans = max(ans, 1+count(s, ' '))
132+
}
133+
return ans
134+
}
135+
136+
func max(a, b int) int {
137+
if a > b {
138+
return a
139+
}
140+
return b
141+
}
68142
```
69143

70144
### **TypeScript**

0 commit comments

Comments
 (0)