每日一题-两序列

简介: 每日一题-两序列

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")
相关文章
|
5月前
【每日一题Day369】LC187重复的DNA序列 | 字符串哈希
【每日一题Day369】LC187重复的DNA序列 | 字符串哈希
26 1
|
4月前
leetcode-187:重复的DNA序列
leetcode-187:重复的DNA序列
29 0
|
5月前
【每日一题Day257】LC2178拆分成最多数目的正偶数之和 | 贪心
【每日一题Day257】LC2178拆分成最多数目的正偶数之和 | 贪心
19 2
|
5月前
|
vr&ar
【每日一题Day166】LC1053交换一次的先前排列 | 贪心
【每日一题Day166】LC1053交换一次的先前排列 | 贪心
51 1
|
5月前
|
算法 vr&ar 图形学
☆打卡算法☆LeetCode 187. 重复的DNA序列 算法解析
☆打卡算法☆LeetCode 187. 重复的DNA序列 算法解析
|
12月前
|
人工智能 算法
每日算法系列【LeetCode 1053】交换一次的先前排列
每日算法系列【LeetCode 1053】交换一次的先前排列
整理关于有序序列的问题
我们可以设置两个flag,flag1代表升序,flag2代表降序。然后遍历下数组,用后面面的数减去前面的数,如果>0,则flag1++;如果<0,则flag2++;这里呢比较的话n个数比较n-1次就可以了。所以如果最后flag1==n-1或者flag2= =n-1,则表面这个数组是有序的否则不是。
65 0
|
算法
算法设计与分析/数据结构与算法实验4:添加括号数目问题
算法设计与分析/数据结构与算法实验4:添加括号数目问题
139 0
算法设计与分析/数据结构与算法实验4:添加括号数目问题