360笔试第二题
操作一:把第一个数放在最后
操作二:把12 34 翻转 21 43 依次类推
只能55%。实在不知道怎么优化了,
求AC大神指点😥
可能不能用链表
import java.util.Scanner; public class Main { static class Node{ int node; Node next; Node(int node){ this.node=node; } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int m=sc.nextInt(); if(n==2){ if(m%2==0){ System.out.println("1 2"); } else System.out.println("2 1"); return; } Node head=new Node(1); Node end=head; for(int i=2;i<=n;i++){ Node n1=new Node(i); n1.next=null; end.next=n1; end=n1; } for(int i=0;i<m;i++){ int a= sc.nextInt(); if(a==1){ Node n1=head; head=head.next; end.next=n1; end=n1; end.next=null; } else{ Node n1=head; while(n1!=null){ int temp=n1.node; n1.node=n1.next.node; n1.next.node=temp; n1=n1.next.next; } } } Node n1=head; while(n1!=null){ System.out.print(n1.node+" "); n1=n1.next; } } }