You are viewing a single comment's thread. Return to all comments →
List sorted = arr.stream().sorted().collect(Collectors.toList()); List swap=new ArrayList<>(arr);
if(sorted.equals(arr)){ System.out.println("yes"); return; } int x=0; int y=0; int s1=0; int s2=0; for(int i=0;i<arr.size()-1;i++){ if(sorted.get(i)!=arr.get(i)){ x=arr.get(i); s1=arr.indexOf(arr.get(i)); break; } } for(int m=arr.size()-1;m>0;m--){ if(sorted.get(m)!=arr.get(m)){ y=arr.get(m); s2=arr.indexOf(arr.get(m)); break; } } ///swap logic swap.set(s1, y); swap.set(s2, x); if(sorted.equals(swap)){ System.out.println("yes"); System.out.println("swap "+(s1+1)+" "+(s2+1)); return; } //reverse logic List<Integer> subList=arr.subList(s1, s2+1); Collections.reverse(subList); if(sorted.equals(arr)){ System.out.println("yes"); System.out.println("reverse "+(s1+1)+" "+(s2+1)); return; }else{ System.out.println("no"); return; }
Seems like cookies are disabled on this browser, please enable them to open this website
Almost Sorted
You are viewing a single comment's thread. Return to all comments →
Java
List sorted = arr.stream().sorted().collect(Collectors.toList()); List swap=new ArrayList<>(arr);