目录
每日一题Swap Dilemma
真题链接
思路:
我们显然知道两个数组元素集合不一样时一定返回NO
例如
输入1:
3
1 4 2
1 3 2
输出1:
NO
可以排序后一一比对即可
现在需要解决的就是一个数组的两个序列能不能通过等距交换最终相同
例如:
输入2:
5
1 5 7 1000 4
4 1 7 5 1000
输出2:
NO
输入3:
4
1 2 3 4
4 3 2 1
输出3:
YES
那么该如何判断是否可以变换后相等呢?
在第三个测试用例中,使数组相同的方法之一(不唯一)是
首先选择 l=1 、 r=3 、 p=1、 q=3,变成 3 2 1 4 和 2 3 4 1
然后选择 l=1 、 r=2 、 p=3 、q=4 。变成2 3 1 4 和 2 3 1 4
这个时候就相等了交换结束。
...but这个时候我们继续交换,每次选择相邻两个数两个数组交换(冒泡排序)最终结果两个数组都是 1 2 3 4
欸!
标签:int,ll,long,数组,using,一题,每日,逆序 From: https://www.cnblogs.com/yuzhongrun/p/18289738