今天刚开始刷剑指offer,比较简单的一个题竟然第一次没过。
主要原因在于:1、不能调试徒手撸代码,括号竟然写成了中文,这个问题再把代码copy到自己的eclipse上才发现的;
2、boolean类型最后要返回false
3、静态方法只能调用静态方法,所以主函数里面调用的方法要变成静态方法。静态方法属于类的,动态方法属于实例对象,动态方法只有在实例化后才存在,如果 静态方法能调用动态方法的话那如果别人通过类名调用动态方法时实例对象可能并不存在,但是方法内又调用了对象的方法,由于对象不存在,所以动态方法也不存 在,程序肯定 报错,所以java直接在编译阶段检查这种错误,避免运行时异常。
下面是过了的代码:
public class Solution { public static boolean Find(int target, int [][] array) { int flage = 0; for(int j=0; j<array.length ; j++) { for(int i=0; i<array[j].length; i++) { if(array[j][i] == target){ flage = 1; break; } } if(flage == 1){ return true; } } return false; } public static void main(String[] args) { int [][] a = {{1,2},{2,3,4},{2,3,4,5}}; int b = 5; if(Find(b, a)) { System.out.println("yes"); } } }