每日一题-两序列

简介: 每日一题-两序列

Description

现在给你两个长度为n正整数序列a与b。

让我们现在对序列a进行一次变换:

任意选择一个正整数k,保证 (0 <= k<= n)​ 选择k个不同的下标,为1<=i1<=i2<=...<=ik将选择的这k个下标的a数组变量(ai, ai, ai, ... ai)统一增加1,其余的a数组中的值不变。对a任意排序。

现在想知道是否可以只对数组a执行一次转换,以使结果数组等于b?

Input

输入共3行,其中第一行为一个正整数n,表示序列a与序列b的长度。

第二行为n个正整数,表示序列a。其中(-100 <= ai <= 100)。

第三行为n个正整数,表示序列b。其中(-100 <= bi <= 100)。

Output

输出共1行,如果满足要求,可以进行转换,则输出YES,否则输出NO。

Sample Input 1

3
-1 1 0
0 0 2

Sample Output 1

YES

题解

  1. 将输入的数字转成列表
  2. 进行排序
  3. 判断每个数是否相等或者加一是否相等
  4. 如不相等则输出no并结束,相等则继续
  5. 如果最后标志符没变,即可以一次转变成功,输出yes
n = int(input())
a = list(map(int,input().split()))
b = list(map(int,input().split()))
a.sort()
b.sort()
flag = 1
for i in range(0,n):
    if a[i]!=b[i] and (a[i]+1)!=b[i]:
        print("NO")
        flag = 0
        break
if flag == 1:
    print("YES")
相关文章
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-478 分数序列
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-478 分数序列
35 0
|
8月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-463 相邻两个数的和
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-463 相邻两个数的和
42 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-475 连续平方和
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-475 连续平方和
44 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
62 1
|
8月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-443 输出数字除本身的所有因子和
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-443 输出数字除本身的所有因子和
45 1
|
8月前
|
算法 Java
算法编程(三十):交替合并字符串
算法编程(三十):交替合并字符串
104 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1 算法训练 区间k大数查询
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1 算法训练 区间k大数查询
51 0
|
8月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-449 递归输出数字三角形
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-449 递归输出数字三角形
82 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-49 算法训练 寻找数组中最大值
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-49 算法训练 寻找数组中最大值
58 0
|
7月前
|
算法
【经典LeetCode算法题目专栏分类】【第4期】BFS广度优先算法:单词接龙、最小基因变化、二进制矩阵中的最短路径
【经典LeetCode算法题目专栏分类】【第4期】BFS广度优先算法:单词接龙、最小基因变化、二进制矩阵中的最短路径