classSolution{ publicbooleancanReach(String s, int minJump, int maxJump){ if(s.charAt(s.length()-1)=='1') returnfalse; Deque<Integer> queue = new LinkedList<>(); int maxLen = minJump-1; queue.addLast(0);
while (!queue.isEmpty()) { int top = queue.pollFirst(); if(top==s.length()-1) returntrue; int start = Math.max(maxLen+1,top+minJump); int end =Math.min(s.length()-1,top+maxJump); for(int idx =start;idx<=end;idx++){ if(s.charAt(idx)=='0') { queue.addLast(idx); } } maxLen = Math.max(maxLen,end); } returnfalse; } }