Python - K差值连续元素
K差值可以设置为任何值,用于设置两个数字之间的差值。连续元素是指按顺序排列的元素。在Python中,我们将使用一些内置函数,例如range()、len()、abs()、append()和sort()来解决K差值连续元素的问题。
让我们来看一个例子。
给定的列表:[5, 6, 3, 2, 4, 3, 4]
K值设置为1,这意味着每个连续元素的差值为1。
那么最终结果将是:
[True, False, True, False, True, True]
解释
当元素相差1时,结果为True,否则为False。
语法
以下语法在示例中使用:
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()对给定列表进行排序,将元素按升序排列。然后在变量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差值连续元素的概念,它设置差值来检查给定列表的顺序。根据给定的输入列表和特定条件和操作,所有输出之间都存在差异。这种类型的程序通常用于解决算法问题陈述。