Python K差连续元素
K差被设置为任意值,用于设置两个数之间的差异。连续元素是按顺序排列的元素。在Python中,我们有一些内置函数,如range(),len(),abs(),append()和sort(),可以用来解决K差连续元素。
让我们以一个例子来说明。
给定列表[5, 6, 3, 2, 4, 3, 4]
将K值设置为1意味着每个连续的元素之间差异为5。
然后最终结果变为[True, False, True, False, True, True]
解释:
当元素之间差值为1时,结果为真,否则为假。
语法
在示例中使用以下语法-
range()
内置函数range() 是根据给定的长度返回数字的顺序。
len()
len()是Python内置函数,用于返回对象的长度。
abs()
内置函数 abs() 返回给定输入的绝对值。
append()
append()是Python中的一个内置函数,可以用于将元素添加到列表的末尾。
sort()
sort()是Python中的一个内置函数,用于将列表按升序排列。
使用暴力法
在下面的示例中,我们将使用暴力法来找到K个不同连续元素的可能解。在这个程序中,将使用for循环来设置迭代次数,次数由列表的长度决定。然后,通过使用if语句,将列表的绝对长度与K之间的等价条件设置为操作符。如果K的值满足特定的结果,那么它会将值true添加到连续元素中,否则添加false。最后,函数返回指定的结果。
示例
def k_diff_element(l, K):
# Empty list to store the final output
f_res = []
# condition for the consecutive element
for i in range(len(l) - 1):
if abs(l[i] - l[i+1]) == K:
f_res.append(True)
else:
f_res.append(False)
return f_res
# create the list
lst = [5, 6, 3, 2, 5, 3, 4]
K = 1
res = k_diff_element(lst, K)
print("The result of K difference consecutive elements:\n", res)
输出
The result of K difference consecutive elements:
[True, False, True, False, False, True]
使用sort()函数
在下面的例子中,程序使用递归函数来接受两个参数-输入列表和K值。使用内置函数sort()对给定的列表进行排序,将元素按升序排列。然后在变量result_f_res中创建空列表,用于存储程序的最终输出。接下来,使用for循环,变量i迭代给定的输入列表,使用内置函数len()和range()。然后使用if-else语句来设置连续元素差的条件,如果K差满足条件,则结果为true,否则为false。最后,使用函数return来指定输出。
示例
def k_diff_element(l, K):
l.sort()
f_res = []
# condition for the consecutive element
for i in range(1, len(l)):
if l[i] - l[i-1] == K:
f_res.append(True)
else:
f_res.append(False)
return f_res
# create the list
lst = [5, 6, 3, 2, 4, 3, 4]
K = 1
res = k_diff_element(lst, K)
print(res)
输出
[True, False, True, False, True, True]
使用两个指针
在以下示例中,程序使用了两个指针,意味着它按照给定列表的左右两个方向进行操作。然后,递归函数接受两个参数 – l和K,用于接收输入列表和K值。现在使用内置函数sort()按升序对整数列表进行排序。然后将初始值初始化为左右指针,用于计算连续元素之间的差异。接下来,将空列表存储在result变量中。继续设置while循环,其中使用<运算符将变量right与给定列表的长度进行比较,并计算l[right]和l[left]之间的差异并存储在变量diff中。使用if else-if条件语句基于列表的左右差异设置条件,并返回result变量以获取输出。
示例
def k_diff_element(l, K):
l.sort()
# Set the first initial pointer
left = 0
# Set the Second initial pointer
right = 1
result = []
while right < len(l):
diff = l[right] - l[left]
if diff == K:
result.append(True)
left += 1
right += 1
elif diff < K:
right += 1
else:
left += 1
return result
# create the list
lst = [5, 7, 2, 3, 4]
K = 1
res = k_diff_element(lst, K)
print(res)
输出
[True, True, True]
结论
我们学习了K个连续元素的概念,它设置了差值来检查给定列表的顺序。根据给定的输入列表和特定的条件和操作,所有的输出都有所不同。这种类型的程序通常用于解决算法问题的陈述。