Skip to content

Commit 6ee4452

Browse files
committed
fd
1 parent 8e8a182 commit 6ee4452

File tree

6 files changed

+84
-18
lines changed

6 files changed

+84
-18
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,5 +385,7 @@
385385
|669|[Trim a Binary Search Tree](https://leetcode.com/problems/trim-a-binary-search-tree/)|[Java](leetcode/solution/src/TrimABinarySearchTree.java)|100||
386386
|681|[Next Closest Time](https://leetcode.com/problems/next-closest-time/)|[Java](leetcode/solution/src/NextClosestTime.java)|80|这题多做几遍|
387387
|684|[Redundant Connection](https://leetcode.com/problems/redundant-connection/)| [Java](leetcode/solution/src/RedundantConnection.java)|||
388+
|695|[Max Area of Island](https://leetcode.com/problems/max-area-of-island/)|[Java](leetcode/solution/src/MaxAreaOfIsland.java)|100||
388389
|771|[Jewels and Stones](https://leetcode.com/problems/jewels-and-stones/)|[Java](leetcode/solution/src/JewelsAndStones.java)|100||
389-
|904|[Fruit Into Baskets](https://leetcode.com/problems/fruit-into-baskets/)|[Java](leetcode/solution/src/FruitIntoBaskets.java)|90||
390+
|904|[Fruit Into Baskets](https://leetcode.com/problems/fruit-into-baskets/)|[Java](leetcode/solution/src/FruitIntoBaskets.java)|90||
391+
|929|[Unique Email Addresses](https://leetcode.com/problems/unique-email-addresses/)|[Java](leetcode/solution/src/UniqueEmailAddresses.java)|90||

leetcode/solution/src/GroupAnagrams.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
public class GroupAnagrams {
77

8+
// 12ms
89
public List<List<String>> groupAnagrams(String[] strs) {
910
HashMap<String, List<String>> map = new HashMap<>();
1011

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
public class MaxAreaOfIsland {
2+
3+
public int maxAreaOfIsland(int[][] grid) {
4+
int[] area = new int[1];
5+
int max = 0;
6+
7+
for (int i = 0; i < grid.length; i++) {
8+
for (int j = 0; j < grid[0].length; j++) {
9+
area[0] = 0;
10+
dfs(grid, i, j, area);
11+
max = Math.max(max, area[0]);
12+
}
13+
}
14+
return max;
15+
}
16+
17+
private void dfs(int[][] grid, int i, int j, int[] count) {
18+
if (i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] != 1) {
19+
return;
20+
}
21+
grid[i][j] = 0;
22+
count[0]++;
23+
dfs(grid, i + 1, j, count);
24+
dfs(grid, i - 1, j, count);
25+
dfs(grid, i, j + 1, count);
26+
dfs(grid, i, j - 1, count);
27+
}
28+
}

leetcode/solution/src/MoveZeroes.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,16 @@
44
public class MoveZeroes {
55

66
/**
7-
* 要保持顺序,写的次数最少
7+
* 要保持顺序
88
*/
99
public void moveZeroes(int[] nums) {
10-
for (int i = 0, j = 0; j < nums.length; j++) {
11-
if (nums[j] != 0) {
12-
swap(nums, i++, j);
10+
int j = 0;
11+
for (int i = 0; i < nums.length; i++) {
12+
if (nums[i] != 0) {
13+
nums[j++] = nums[i];
1314
}
1415
}
16+
for ( ; j < nums.length; nums[j++] = 0);
1517
}
1618

1719
private void swap(int[] nums, int i, int j) {
@@ -22,6 +24,7 @@ private void swap(int[] nums, int i, int j) {
2224

2325
/**
2426
* 如果不要求保持顺序,且写的次数最少
27+
* 从两头开始往中间走,如果左边是0,右边非0,则交换,写的次数是0的个数乘2
2528
*/
2629
public void moveZeroes2(int[] nums) {
2730
for (int i = 0, j = nums.length - 1; j > i; ) {
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import java.util.HashSet;
2+
import java.util.Set;
3+
4+
public class UniqueEmailAddresses {
5+
6+
public int numUniqueEmails(String[] emails) {
7+
Set<String> set = new HashSet<>();
8+
for (String email : emails) {
9+
set.add(make(email));
10+
}
11+
return set.size();
12+
}
13+
14+
private String make(String email) {
15+
int index = email.indexOf("@");
16+
String host = email.substring(index + 1);
17+
String name = email.substring(0, index);
18+
int index2 = name.indexOf("+");
19+
if (index2 >= 0) {
20+
name = name.substring(0, index2);
21+
}
22+
name = name.replaceAll(".", "");
23+
return name + "@" + host;
24+
}
25+
}

leetcode/src/Main.java

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,33 @@
22

33
public class Main {
44

5-
public int findCircleNum(int[][] M) {
6-
int num = 0;
7-
for (int i = 0; i < M.length; i++) {
8-
if (M[i][i] == 1) {
9-
dfs(M, i);
10-
num++;
5+
public int maxAreaOfIsland(int[][] grid) {
6+
int[] area = new int[1];
7+
int max = 0;
8+
9+
for (int i = 0; i < grid.length; i++) {
10+
for (int j = 0; j < grid[0].length; j++) {
11+
area[0] = 0;
12+
dfs(grid, i, j, area);
13+
max = Math.max(max, area[0]);
1114
}
1215
}
13-
return num;
16+
return max;
1417
}
1518

16-
private void dfs(int[][] M, int i) {
17-
M[i][i] = 0;
18-
for (int j = 0; j < M.length; j++) {
19-
if (M[j][j] != 0 && M[i][j] == 1) {
20-
dfs(M, j);
21-
}
19+
private void dfs(int[][] grid, int i, int j, int[] count) {
20+
if (i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] != 1) {
21+
return;
2222
}
23+
grid[i][j] = 0;
24+
count[0]++;
25+
dfs(grid, i + 1, j, count);
26+
dfs(grid, i - 1, j, count);
27+
dfs(grid, i, j + 1, count);
28+
dfs(grid, i, j - 1, count);
2329
}
2430

2531
public static void main(String[] args) {
32+
2633
}
2734
}

0 commit comments

Comments
 (0)