这题要求好数字不能相邻,我选择把最大的那k个数作为好数字,并且在它们之间插入小于这些好数字的数,我选择从n-(k-1)-1开始向下遍历,把这里的数字插入好数字之间
最后在n-2*k至1之间遍历,把剩下的全部插进去
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int k=scanner.nextInt();
ArrayList<Integer> list=new ArrayList<>();
int count=0;
for (int i = n-(k-1); i <=n ; i++) {
count++;
list.add(i);
int t=n-(k-1)-count;
if(t==0)break;
list.add(t);
}
for (int i = n-2*k; i > 0 ; i--) {
list.add(i);
}
for(Integer x:list) {
System.out.print(x+" ");
}
}
}



京公网安备 11010502036488号