1、 双重循环的跳出
使用标识,然后break ‘标识’
如:
outterLoop :for(int i=0;i<board.length;i++) {
for(int j=0;j<board.length;j++) {
if(board[i][j]=='R') {
x=i;
y=j;
break outterLoop;
}
}
这里的outterLoop就是标识(我叫它标识,术语我也不记得)
2、&的运算
今天做力扣的时候,是这道题 有效括号的嵌套深度
我做的是
public static int[] maxDepthAfterSplit(String seq) {
int[] arr = new int[seq.length()];
char[] chars = seq.toCharArray();
int intx=0;
int inty=0;
for (int i =0;i<chars.length;i++) {
if(chars[i]=='('){
intx++;
if(intx%2!=0){
arr[i]=0;
}else{
arr[i]=1;
}
}else{
inty++;
if(inty%2!=0){
arr[i]=0;
}else{
arr[i]=1;
}
}
}
return arr;
}
然后看到解题里的是这种,来着我董大的甜姨
public class Solution {
public int[] maxDepthAfterSplit(String seq) {
int[] ans = new int [seq.length()];
int idx = 0;
for(char c: seq.toCharArray()) {
ans[idx++] = c == '(' ? idx & 1 : ((idx + 1) & 1);
}
return ans;
}
}
作者:sweetiee
链接:https://leetcode-cn.com/problems/maximum-nesting-depth-of-two-valid-parentheses-strings/solution/ti-mian-shuo-ming-ti-mu-jiang-jie-shuo-hao-fa-wan-/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
所以我在想一样的方法我的代码行这么多,他的这么少,就研究了一下&的运算:
//&将两个数进行与位计算 即:当idx为偶数是,
//idx&1=0,为基数时,当idx为基数时,idx&1为1
&是与运算,即将数值转化为2进制,然后两者比较
如:00001
11110
=00000
即相同的为1,不相同为0
IDEA的使用注意事项
1.学习的时候每学习一块知识点单独的建一个项目,不然后面常出现ClassNotFound错误啥的,因为写的类太多了类重复啥的,jar包重复加载啥的各种错误出现
2.jar包一定要导入在web->WEN-INF->lib下,tomcat有点蠢,放错了它可能找不到相关类。
ps:今天找错误找晕了wuwuwuuwuwuw~~~~~~~