资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。
输入格式
输入的第一行包含一个整数n,表示给定整数的个数。
第二行包含所给定的n个整数。
输出格式
输出一个整数,表示值正好相差1的数对的个数。
样例输入
6
10 2 6 3 7 8
样例输出
3
解答:
思路:1、将输入的数字存入列表ls
2、循环遍历列表ls,求列表中每一个元素的相邻数字
3、判断相邻数字是否在列表ls中,并将存在的数字存储在新的列表s内。
4、求列表s长度的一半,就是相邻数对的个数
n=int(input())
ls=list(map(int,input().split()))
s=[]
for i in range(len(ls)):
j=int(ls[i])+1
k=int(ls[i])-1
if j in ls :
s.append((ls[i],j))
if k in ls:
s.append((k,ls[i]))
print(int(len(s)/2))