LeetCode常见方法总结

LeetCode

字符串
1.字符串反转
String str = "hello";
StringBuffer sBuffer = new StringBuffer("hello");
String reverseStr = sBuffer.reverse().toString(); //olleh
2.包含子串
String str1 = "abcdefg";
String str2 = "abc";
str1.contains(str2) //true
Str1.IndexOf(str2) //包含返回对应索引,否则返回-1
数字
1.进制转换

​ 方法一:while循环(自己探索的暴力方法)

String numStr = ""
while(N != 0){
    N  = N/10;
    num = nuStr + String.valueOf(N%10);
}
//输出的是倒序,还要使用翻转
StringBuffer sBuffer = new StringBuffer(num);
num = SBuffer.reverse().toString;

​ 进制转换的api

10进制转r进制函数返回
10进制转2进制Integer.toBinaryString(n)
10进制转8进制Integer.toOctalString(n);
10进制转16进制Integer.toHexString(n);
10进制转r进制Integer.toString(100, r);

r进制转10进制

Integer.parase(String num,int radix);
数组
1.数组的复制

优雅的复制

int[] arr = {1,2,3};
int[] arr2 = arr.clone();
int[] arr3 = Array.copys(arr,arr.len);
2.dfs(深度优先遍历)

典型题:小岛面积问题,迷宫问题

int dfs(int r.int c,int grid[][]){
    if( r < 0 || c < 0 || r >= grid.length || c >= grid.length ){
        return 0 ;
    }
    if(grid[r][c]==0){
    	return 0;
    }
    grid[i][j] = 0; //将遍历过的位置置为0
    
    //递归调用,搜索上下左右
    int up = dfs(r-1,c,grid);
    int down = dfs(r+1,c,grid);
    int left = dfs(r,c+1,grid);
    int right = dfs(r,c-1,grid);
    
    return 1 + up + down + left + right ; // 1是加上自身
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值