算法提高 交换Easy
Description
给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列。
Input
输入描述:
第一行为序列的大小N(1<=N<=1000)和操作个数M(1<=M<=1000)。
第二行包含N个数字,表示初始序列。
接下来M行,每行两个整数x,y (1<=x,y<=N),表示要交换的两个整数。在一次交换中,如果x和y相等,则不会改变序列的内容。
输入样例:
5 2
1 2 3 4 5
1 2
3 4
Output
输出描述:
输出N行,为交换后的序列中的数。
输出样例:
2
1
4
3
5
1 import java.util.HashMap; 2 import java.util.Scanner; 3 4 public class Main { 5 public static void main(String arg[]){ 6 Scanner in=new Scanner(System.in); 7 int n=in.nextInt(); 8 int m=in.nextInt(); 9 int sz[]=new int[n+1]; 10 HashMap<Integer,Integer> hm=new HashMap<>(); 11 for (int i = 1; i <sz.length; i++) { 12 int z=in.nextInt(); 13 sz[i]=z; 14 hm.put(i,z); 15 } 16 for (int i = 0; i < m; i++) { 17 int a=in.nextInt(); 18 int b=in.nextInt(); 19 int c=hm.get(a); 20 int d=hm.get(b); 21 sz[a]=d; 22 sz[b]=c; 23 hm.put(a,d); 24 hm.put(b,c); 25 26 } 27 for (int i = 1; i <sz.length; i++) { 28 System.out.println(sz[i]); 29 } 30 31 } 32 33 }