本人小白,以前面试的时候,面试官给我出的一道算法题,当时没有想出来。昨天晚上又想起了这道题,就试着去解,结果如下,分享给大家:
public class Storage { private Storage storage; private Integer number; //将数据放入 public Storage put(Integer number){ if(this.storage!=null&&this.has(number)){ System.out.println("重复:"+number); return this; }else{ this.number = number; Storage storage1 = new Storage(); storage1.storage = this; return storage1; } } //检查是否相同 private boolean has(Integer number){ if(storage==null||storage.number==null){ return false; } if(this.storage.number!=null&&this.storage.number==number){ return true; } return storage.has(number); } }
public class Main { public static void main(String[] args){ Integer[] num = {1,5,9,4,4,3,11,12,13,61,45,789,12,33}; Storage storage = new Storage(); for(Integer i:num){ storage =storage.put(i); } } }
运行结果:
重复:4 重复:12