Skip to content

Commit b004865

Browse files
committed
feat: add rust solution to lc problem: No.0977
No.0977.Squares of a Sorted Array
1 parent ef3209d commit b004865

File tree

3 files changed

+70
-0
lines changed

3 files changed

+70
-0
lines changed

solution/0900-0999/0977.Squares of a Sorted Array/README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,31 @@ var sortedSquares = function (nums) {
161161
};
162162
```
163163

164+
### **Rust**
165+
166+
```rust
167+
impl Solution {
168+
pub fn sorted_squares(nums: Vec<i32>) -> Vec<i32> {
169+
let n = nums.len();
170+
let mut l = 0;
171+
let mut r = n - 1;
172+
let mut res = vec![0; n];
173+
for i in (0..n).rev() {
174+
let a = nums[l] * nums[l];
175+
let b = nums[r] * nums[r];
176+
if a < b {
177+
res[i] = b;
178+
r -= 1;
179+
} else {
180+
res[i] = a;
181+
l += 1;
182+
}
183+
}
184+
res
185+
}
186+
}
187+
```
188+
164189
### **...**
165190

166191
```

solution/0900-0999/0977.Squares of a Sorted Array/README_EN.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,31 @@ var sortedSquares = function (nums) {
144144
};
145145
```
146146

147+
### **Rust**
148+
149+
```rust
150+
impl Solution {
151+
pub fn sorted_squares(nums: Vec<i32>) -> Vec<i32> {
152+
let n = nums.len();
153+
let mut l = 0;
154+
let mut r = n - 1;
155+
let mut res = vec![0; n];
156+
for i in (0..n).rev() {
157+
let a = nums[l] * nums[l];
158+
let b = nums[r] * nums[r];
159+
if a < b {
160+
res[i] = b;
161+
r -= 1;
162+
} else {
163+
res[i] = a;
164+
l += 1;
165+
}
166+
}
167+
res
168+
}
169+
}
170+
```
171+
147172
### **...**
148173

149174
```
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
impl Solution {
2+
pub fn sorted_squares(nums: Vec<i32>) -> Vec<i32> {
3+
let n = nums.len();
4+
let mut l = 0;
5+
let mut r = n - 1;
6+
let mut res = vec![0; n];
7+
for i in (0..n).rev() {
8+
let a = nums[l] * nums[l];
9+
let b = nums[r] * nums[r];
10+
if a < b {
11+
res[i] = b;
12+
r -= 1;
13+
} else {
14+
res[i] = a;
15+
l += 1;
16+
}
17+
}
18+
res
19+
}
20+
}

0 commit comments

Comments
 (0)