695. The maximum area of the island
//DFS
class Solution {
public int maxAreaOfIsland(int[][] grid) {
int max = 0;
for(int i = 0; i < grid.length; i++){
for(int j = 0; j < grid[0].length; j++){
if(grid[i][j] == 1){
max = Math.max (dfs(grid, i, j), max);
}
}
}
return max;
}
int dfs(int[][] grid, int i, int j){
if(i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] == 0){
return 0;
}
grid[i][j] = 0;
int count = 1;
count += dfs(grid, i+1, j);
count += dfs(grid, i-1, j);
count += dfs(grid, i, j+1);
count += dfs(grid, i, j-1);
return count;
}
}
//BFS
class Solution {
int[][] dicts = new int[][]{{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
private boolean isInArea(int[][] grid, int i, int j) {
if (i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)
return false;
return true;
}
public int maxAreaOfIsland(int[][] grid) {
int ans = 0;
int m = grid.length;
int n = grid[0].length;
Queue<int[]> queue = new ArrayDeque<>();
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (grid[i][j] == 1) {
int tmp = 0;
grid[i][j] = 0;
queue.add(new int[]{i, j});
while (!queue.isEmpty()) {
int[] cur = queue.poll();
tmp++;
int x = cur[0];
int y = cur[1];
for (int[] d : dicts) {
int nx = x + d[0];
int ny = y + d[1];
if (isInArea(grid, nx, ny) && grid[nx][ny] == 1) {
grid[nx][ny] = 0;
queue.add(new int[]{nx, ny});
}
}
}
ans = Math.max(ans, tmp);
}
}
}
return ans;
}
}
1323.6 and maximum 9 digits
class Solution {
public int maximum69Number (int num) {
return Integer.valueOf(String.valueOf(num).replaceFirst("6","9"));
}
}
class Solution {
public int maximum69Number (int num) {
String numStr = String.valueOf(num);
char[] cs = numStr.toCharArray();
for(int i = 0; i < cs.length;i++) {
char numc = cs[i];
if (numc == '6') {
cs[i] = '9';
break;
}
}
return Integer.valueOf(String.valueOf(cs));
}
}
class Solution {
public int maximum69Number (int num) {
char[] array = String.valueOf(num).toCharArray();
int length = array.length;
for (int i = 0; i < length; i++) {
if (array[i] == '6') {
array[i] = '9';
break;
}
}
return Integer.parseInt(new String(array));
}
}
709. converted to lowercase
class Solution {
public String toLowerCase(String str) {
char[] chars = str.toCharArray();
for(int i=0;i<chars.length;i++){
if(chars[i] >= 'A'&& chars[i] <= 'Z'){
chars[i] += 'a' - 'A';
}
}
return String.valueOf(chars);
}
}
class Solution {
public String toLowerCase(String str) {
if(str == null && "".equals(str)) return null;
StringBuilder sb = new StringBuilder();
for(char c:str.toCharArray()){
if(c >= 'A' && c <= 'Z'){
sb.append((char)(c+32));
}else{
sb.append(c);
}
}
return sb.toString();
}
}
class Solution {
public String toLowerCase(String str) {
String result = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 65 && c <= 90) {
c += 32;
}
result += c;
}
return result;
}
}
The more you know, the more you do not know.
Proper way without surgery, patients can still seek, there is no way to surgery, ending surgery.
If you have other questions, welcome message, we can discuss, learn together and progress together