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 0d8662c

Browse files
Update solutions
1 parent ff4410a commit 0d8662c

File tree

11 files changed

+130
-8
lines changed

11 files changed

+130
-8
lines changed

‎lib/array/contains_duplicate.dart‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import 'dart:collection';
2+
3+
bool containsDuplicate(List<int> nums) {
4+
return HashSet.from(nums).length < nums.length;
5+
}

‎lib/array/remove_element.dart‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
int removeElement(List<int> nums, int val) {
2+
var left = 0;
3+
var right = nums.length - 1;
4+
while (left < right) {
5+
if (nums[left] == val) {
6+
nums[left] = nums[right - 1];
7+
right -= 1;
8+
} else {
9+
left += 1;
10+
}
11+
}
12+
13+
return right;
14+
}

‎lib/leetcode.dart‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/// Support for doing something awesome.
2-
///
3-
/// More dartdocs go here.
41
library leetcode;
52

63
export 'graph/num_islands.dart';
@@ -12,3 +9,9 @@ export 'tree/invert_tree.dart';
129
export 'tree/max_depth.dart';
1310
export 'tree/tree_node.dart';
1411
export 'trie/trie.dart';
12+
export 'matrix/is_valid_sudoku.dart';
13+
export 'matrix/rotate.dart';
14+
export 'array/contains_duplicate.dart';
15+
export 'array/remove_element.dart';
16+
export 'tree/is_same_tree.dart';
17+
export 'tree/is_symmetric.dart';

‎lib/matrix/is_valid_sudoku.dart‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import 'dart:collection';
2+
3+
bool isValidSudoku(List<List<String>> board) {
4+
bool addIfValid(String input, HashSet<String> set) {
5+
if (input != ".") {
6+
if (set.contains(input)) {
7+
return false;
8+
}
9+
set.add(input);
10+
}
11+
return true;
12+
}
13+
14+
for (var row = 0; row < 9; row++) {
15+
var horizontalSet = HashSet<String>();
16+
var verticalSet = HashSet<String>();
17+
for (var col = 0; col < 9; col++) {
18+
if (!addIfValid(board[row][col], horizontalSet)) {
19+
return false;
20+
}
21+
if (!addIfValid(board[col][row], verticalSet)) {
22+
return false;
23+
}
24+
}
25+
}
26+
27+
for (var row = 0; row < 9; row += 3) {
28+
for (var col = 0; col < 9; col += 3) {
29+
var boxSet = HashSet<String>();
30+
for (var i = row; i < row + 3; i++) {
31+
for (var j = col; j < col + 3; j++) {
32+
if (!addIfValid(board[i][j], boxSet)) {
33+
return false;
34+
}
35+
}
36+
}
37+
}
38+
}
39+
40+
return true;
41+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import 'package:leetcode/leetcode.dart';
2+
import 'package:test/test.dart';
3+
4+
void main() {
5+
test('example 1', () {
6+
expect(containsDuplicate([1,2,3,1]), equals(true));
7+
});
8+
9+
test('example 2', () {
10+
expect(containsDuplicate([1,2,3,4]), equals(false));
11+
});
12+
13+
test('example 3', () {
14+
expect(containsDuplicate([1,1,1,3,3,4,3,2,4,2]), equals(true));
15+
});
16+
}

‎test/array/remove_element_test.dart‎

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

‎test/matrix/rotate_test.dart‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import 'package:leetcode/matrix/rotate.dart';
2-
import 'package:test/expect.dart';
3-
import 'package:test/scaffolding.dart';
1+
import 'package:leetcode/leetcode.dart';
2+
import 'package:test/test.dart';
43

54
void main() {
65
test('example 1', () {

‎test/tree/is_same_tree_test.dart‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import 'package:leetcode/leetcode.dart';
2-
import 'package:leetcode/tree/is_same_tree.dart';
32
import 'package:test/test.dart';
43

54
void main() {

0 commit comments

Comments
(0)

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