PDD算法题
题目:
问题解析:
给定一个长度为n的整数序列a1,a2,...,an,我们需要判断是否存在另一个等长的整数序列b1,b2,...,bn,使得对于任意的1≤i<n,都存在1≤j,k≤n,使得ai等于bj与bk的差(即ai = bj - bk)。
输入描述:
- 第一行是一个整数t,表示测试用例的数量(1≤t≤10)。
- 对于每组测试用例:第一行是一个整数n,表示序列的长度(1≤n≤10)。第二行是n个整数a1,a2,...,an,这些整数以空格隔开,且它们的绝对值不超过10^6(-10^6≤a≤10^6)。
求解思路:
不知道咋写,只想了一部分方法:数组有0或者有重复元素,数组两数之差也在数组中,这些情况可以,剩下的不知道了
def func(nums): if 0 in nums: return True #有0 sorted(nums) nums1 = set(nums) if len(nums1) < len(nums): #有重复元素 return True for i in range(len(nums)): for j in range(i+1, len(nums)): if nums[j] - nums[i] in nums and nums[j] - nums[i] != nums[i]: #两数差值在数组中 return True return False nums1 = [3, 5, 7, 8, 10] nums = [3, 7, 9, 10] print(func(nums))