有道选择题是golang的,没学过。选择输出顺序。。。查了一下defer是延迟函数,panic是抛出33这个err异常,然后在defer中通过recover捕获这个异常,所以顺序是 a d 33 e
func main(){
defer func(){
fmt.Println("d")
if err:=recover();err!=nil{
fmt.Println(err)
}
fmt.Println("e")
}()
f()
}
func f(){
fmt.Println("a")
panic(33)
fmt.Println("b")
fmt.Println("c")
}
要贴上代码的是一道深度遍历的题,很简单的深度遍历。问这个矩阵中的连续的1 可以组成几块区域。
public class wps {
private int [][]a;
public wps(int [][]b){
a=new int[b.length+2][b.length+2];
for (int i = 1; i < a.length-1; i++) {
for (int j = 1; j < a[i].length-1; j++) {
a[i][j]=b[i-1][j-1];
}
}
}
public int getNum(){
int count=0;
for (int i = 1; i < a.length-1; i++) {
for (int j = 1; j < a[i].length-1; j++) {
if(a[i][j]==1){
count++;
fun(i,j);
}
}
}
return count;
}
public void fun(int i,int j){
System.out.println("递归层次");
a[i][j]=0;
if(a[i+1][j]==1){
fun(i+1,j);
}
if(a[i][j+1]==1){
fun(i,j+1);
}
if(a[i][j-1]==1){
fun(i,j-1);
}
if(a[i-1][j]==1){
fun(i-1,j);
}
}
public static void main(String[] args) {
int [][]a={ {1,1,0,0,0},
{0,1,0,1,1},
{0,0,0,1,1},
{0,0,0,0,0},
{0,0,1,1,1}
};
System.out.println(new wps(a).getNum());;
}
}
只通过测试示例系列。。。
还有一些需要写伪代码的题目,LRU。没接触过。最后的加分题是描述自己做过的项目,做过但不会说系列。。。