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 beda2ad

Browse files
Update solutions
1 parent 4540850 commit beda2ad

File tree

6 files changed

+95
-2
lines changed

6 files changed

+95
-2
lines changed

‎lib/array/permute.dart‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
List<List<int>> permute(List<int> nums) {
2+
var list = <List<int>>[];
3+
4+
if (nums.isEmpty) {
5+
return list;
6+
}
7+
8+
void permutation(List<int> curr) {
9+
if (curr.length == nums.length) {
10+
list.add([...curr]);
11+
return;
12+
}
13+
14+
for (var num in nums) {
15+
if (!curr.contains(num)) {
16+
curr.add(num);
17+
permutation(curr);
18+
curr.removeLast();
19+
}
20+
}
21+
}
22+
23+
permutation([]);
24+
return list;
25+
}

‎lib/leetcode.dart‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ library leetcode;
22

33
export 'array/contains_duplicate.dart';
44
export 'array/max_profit.dart';
5+
export 'array/permute.dart';
56
export 'array/remove_element.dart';
67
export 'graph/num_islands.dart';
78
export 'hash/lru_cache.dart';
89
export 'list/add_two_numbers.dart';
910
export 'list/list_node.dart';
11+
export 'list/merge_two_lists.dart';
1012
export 'list/reverse_list.dart';
1113
export 'matrix/is_valid_sudoku.dart';
1214
export 'matrix/rotate.dart';

‎lib/tree/has_path_sum.dart‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import 'package:leetcode/tree/tree_node.dart';
2+
3+
bool hasPathSum(TreeNode? root, int targetSum) {
4+
if (root == null) {
5+
return false;
6+
}
7+
8+
if (root.left == null && root.right == null && root.val == targetSum) {
9+
return true;
10+
}
11+
12+
targetSum -= root.val;
13+
return hasPathSum(root.left, targetSum) || hasPathSum(root.right, targetSum);
14+
}

‎test/array/permute_test.dart‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import 'package:leetcode/leetcode.dart';
2+
import 'package:test/test.dart';
3+
4+
void main() {
5+
test('example 1', () {
6+
var expected = [
7+
[1, 2, 3],
8+
[1, 3, 2],
9+
[2, 1, 3],
10+
[2, 3, 1],
11+
[3, 1, 2],
12+
[3, 2, 1]
13+
];
14+
expect(permute([1, 2, 3]), equals(expected));
15+
});
16+
17+
test('example 2', () {
18+
var expected = [
19+
[0, 1],
20+
[1, 0]
21+
];
22+
expect(permute([0, 1]), equals(expected));
23+
});
24+
25+
test('example 3', () {
26+
var expected = [
27+
[1]
28+
];
29+
expect(permute([1]), equals(expected));
30+
});
31+
}

‎test/list/merge_two_lists_test.dart‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import 'package:leetcode/leetcode.dart';
2-
import 'package:leetcode/list/merge_two_lists.dart';
32
import 'package:test/test.dart';
43

54
void main() {
65
test('example 1', () {
76
var list1 = ListNode.fromList([1, 2, 4]);
87
var list2 = ListNode.fromList([1, 3, 4]);
98
var expected = ListNode.fromList([1, 1, 2, 3, 4, 4]);
10-
var result = mergeTwoLists(list1, list2);
119
expect(mergeTwoLists(list1, list2), equals(expected));
1210
});
1311

‎test/tree/has_path_sum_test.dart‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import 'package:leetcode/leetcode.dart';
2+
import 'package:leetcode/tree/has_path_sum.dart';
3+
import 'package:test/test.dart';
4+
5+
void main() {
6+
test('example 1', () {
7+
var input = TreeNode.fromList(
8+
[5, 4, 8, 11, null, 13, 4, 7, 2, null, null, null, 1]);
9+
var expected = true;
10+
expect(hasPathSum(input, 22), equals(expected));
11+
});
12+
13+
test('example 2', () {
14+
var input = TreeNode.fromList([1, 2, 3]);
15+
var expected = false;
16+
expect(hasPathSum(input, 5), equals(expected));
17+
});
18+
19+
test('example 3', () {
20+
var expected = false;
21+
expect(hasPathSum(null, 0), equals(expected));
22+
});
23+
}

0 commit comments

Comments
(0)

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