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 1ebe39f

Browse files
feat: add solutions to lc problem: No.2966 (doocs#4435)
No.2966.Divide Array Into Arrays With Max Difference
1 parent b5a542b commit 1ebe39f

File tree

6 files changed

+295
-0
lines changed

6 files changed

+295
-0
lines changed

‎solution/2900-2999/2966.Divide Array Into Arrays With Max Difference/README.md‎

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,111 @@ function divideArray(nums: number[], k: number): number[][] {
192192
}
193193
```
194194

195+
#### Swift
196+
197+
```swift
198+
class Solution {
199+
func divideArray(_ nums: [Int], _ k: Int) -> [[Int]] {
200+
var sortedNums = nums.sorted()
201+
var ans: [[Int]] = []
202+
203+
for i in stride(from: 0, to: sortedNums.count, by: 3) {
204+
if i + 2 >= sortedNums.count {
205+
return []
206+
}
207+
208+
let t = Array(sortedNums[i..<i+3])
209+
if t[2] - t[0] > k {
210+
return []
211+
}
212+
213+
ans.append(t)
214+
}
215+
216+
return ans
217+
}
218+
}
219+
```
220+
221+
#### Rust
222+
223+
```rust
224+
impl Solution {
225+
pub fn divide_array(mut nums: Vec<i32>, k: i32) -> Vec<Vec<i32>> {
226+
nums.sort();
227+
let mut ans = Vec::new();
228+
let n = nums.len();
229+
230+
for i in (0..n).step_by(3) {
231+
if i + 2 >= n {
232+
return vec![];
233+
}
234+
235+
let t = &nums[i..i+3];
236+
if t[2] - t[0] > k {
237+
return vec![];
238+
}
239+
240+
ans.push(t.to_vec());
241+
}
242+
243+
ans
244+
}
245+
}
246+
```
247+
248+
#### C#
249+
250+
```cs
251+
public class Solution {
252+
public int[][] DivideArray(int[] nums, int k) {
253+
Array.Sort(nums);
254+
List<int[]> ans = new List<int[]>();
255+
256+
for (int i = 0; i < nums.Length; i += 3) {
257+
if (i + 2 >= nums.Length) {
258+
return new int[0][];
259+
}
260+
261+
int[] t = new int[] { nums[i], nums[i + 1], nums[i + 2] };
262+
if (t[2] - t[0] > k) {
263+
return new int[0][];
264+
}
265+
266+
ans.Add(t);
267+
}
268+
269+
return ans.ToArray();
270+
}
271+
}
272+
```
273+
274+
#### Dart
275+
276+
```dart
277+
class Solution {
278+
List<List<int>> divideArray(List<int> nums, int k) {
279+
nums.sort();
280+
List<List<int>> ans = [];
281+
282+
for (int i = 0; i < nums.length; i += 3) {
283+
if (i + 2 >= nums.length) {
284+
return [];
285+
}
286+
287+
List<int> t = nums.sublist(i, i + 3);
288+
if (t[2] - t[0] > k) {
289+
return [];
290+
}
291+
292+
ans.add(t);
293+
}
294+
295+
return ans;
296+
}
297+
}
298+
```
299+
195300
<!-- tabs:end -->
196301

197302
<!-- solution:end -->

‎solution/2900-2999/2966.Divide Array Into Arrays With Max Difference/README_EN.md‎

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,111 @@ function divideArray(nums: number[], k: number): number[][] {
190190
}
191191
```
192192

193+
#### Rust
194+
195+
```rust
196+
impl Solution {
197+
pub fn divide_array(mut nums: Vec<i32>, k: i32) -> Vec<Vec<i32>> {
198+
nums.sort();
199+
let mut ans = Vec::new();
200+
let n = nums.len();
201+
202+
for i in (0..n).step_by(3) {
203+
if i + 2 >= n {
204+
return vec![];
205+
}
206+
207+
let t = &nums[i..i+3];
208+
if t[2] - t[0] > k {
209+
return vec![];
210+
}
211+
212+
ans.push(t.to_vec());
213+
}
214+
215+
ans
216+
}
217+
}
218+
```
219+
220+
#### C#
221+
222+
```cs
223+
public class Solution {
224+
public int[][] DivideArray(int[] nums, int k) {
225+
Array.Sort(nums);
226+
List<int[]> ans = new List<int[]>();
227+
228+
for (int i = 0; i < nums.Length; i += 3) {
229+
if (i + 2 >= nums.Length) {
230+
return new int[0][];
231+
}
232+
233+
int[] t = new int[] { nums[i], nums[i + 1], nums[i + 2] };
234+
if (t[2] - t[0] > k) {
235+
return new int[0][];
236+
}
237+
238+
ans.Add(t);
239+
}
240+
241+
return ans.ToArray();
242+
}
243+
}
244+
```
245+
246+
#### Swift
247+
248+
```swift
249+
class Solution {
250+
func divideArray(_ nums: [Int], _ k: Int) -> [[Int]] {
251+
var sortedNums = nums.sorted()
252+
var ans: [[Int]] = []
253+
254+
for i in stride(from: 0, to: sortedNums.count, by: 3) {
255+
if i + 2 >= sortedNums.count {
256+
return []
257+
}
258+
259+
let t = Array(sortedNums[i..<i+3])
260+
if t[2] - t[0] > k {
261+
return []
262+
}
263+
264+
ans.append(t)
265+
}
266+
267+
return ans
268+
}
269+
}
270+
```
271+
272+
#### Dart
273+
274+
```dart
275+
class Solution {
276+
List<List<int>> divideArray(List<int> nums, int k) {
277+
nums.sort();
278+
List<List<int>> ans = [];
279+
280+
for (int i = 0; i < nums.length; i += 3) {
281+
if (i + 2 >= nums.length) {
282+
return [];
283+
}
284+
285+
List<int> t = nums.sublist(i, i + 3);
286+
if (t[2] - t[0] > k) {
287+
return [];
288+
}
289+
290+
ans.add(t);
291+
}
292+
293+
return ans;
294+
}
295+
}
296+
```
297+
193298
<!-- tabs:end -->
194299

195300
<!-- solution:end -->
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
public class Solution {
2+
public int[][] DivideArray(int[] nums, int k) {
3+
Array.Sort(nums);
4+
List<int[]> ans = new List<int[]>();
5+
6+
for (int i = 0; i < nums.Length; i += 3) {
7+
if (i + 2 >= nums.Length) {
8+
return new int[0][];
9+
}
10+
11+
int[] t = new int[] { nums[i], nums[i + 1], nums[i + 2] };
12+
if (t[2] - t[0] > k) {
13+
return new int[0][];
14+
}
15+
16+
ans.Add(t);
17+
}
18+
19+
return ans.ToArray();
20+
}
21+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution {
2+
List<List<int>> divideArray(List<int> nums, int k) {
3+
nums.sort();
4+
List<List<int>> ans = [];
5+
6+
for (int i = 0; i < nums.length; i += 3) {
7+
if (i + 2 >= nums.length) {
8+
return [];
9+
}
10+
11+
List<int> t = nums.sublist(i, i + 3);
12+
if (t[2] - t[0] > k) {
13+
return [];
14+
}
15+
16+
ans.add(t);
17+
}
18+
19+
return ans;
20+
}
21+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
impl Solution {
2+
pub fn divide_array(mut nums: Vec<i32>, k: i32) -> Vec<Vec<i32>> {
3+
nums.sort();
4+
let mut ans = Vec::new();
5+
let n = nums.len();
6+
7+
for i in (0..n).step_by(3) {
8+
if i + 2 >= n {
9+
return vec![];
10+
}
11+
12+
let t = &nums[i..i + 3];
13+
if t[2] - t[0] > k {
14+
return vec![];
15+
}
16+
17+
ans.push(t.to_vec());
18+
}
19+
20+
ans
21+
}
22+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution {
2+
func divideArray(_ nums: [Int], _ k: Int) -> [[Int]] {
3+
var sortedNums = nums.sorted()
4+
var ans: [[Int]] = []
5+
6+
for i in stride(from: 0, to: sortedNums.count, by: 3) {
7+
if i + 2 >= sortedNums.count {
8+
return []
9+
}
10+
11+
let t = Array(sortedNums[i..<i+3])
12+
if t[2] - t[0] > k {
13+
return []
14+
}
15+
16+
ans.append(t)
17+
}
18+
19+
return ans
20+
}
21+
}

0 commit comments

Comments
(0)

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