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 时结果为 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): # 空列表用于存储最终输出 f_res = [] # 连续元素的条件 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 # 创建列表 lst = [5, 6, 3, 2, 5, 3, 4] K = 1 res = k_diff_element(lst, K) print("K 个不同连续元素的结果:\n", res)
输出
K 个不同连续元素的结果: [True, False, True, False, False, True]
使用 sort() 函数
在下面的例子中,程序使用递归函数接受两个参数 - 输入列表和 K 值。对给定列表使用内置函数 sort() 将按升序对元素进行排序。然后在变量 result f_res 中创建空列表,该列表将存储程序的最终输出。接下来,使用 for 循环,其中变量 i 使用内置函数 len() 和 range() 遍历给定的输入列表。然后使用if-else语句设置连续元素差分的条件,如果K个差分满足则为真,否则为假。最后使用函数return指定输出。
示例
def k_diff_element(l, K): l.sort() f_res = [] # 连续元素的条件 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 # 创建列表 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 阶梯,它根据列表的左右差异设置条件并返回变量结果以获取输出。
示例
def k_diff_element(l, K): l.sort() # 设置第一个初始指针 left = 0 # 设置第二个初始指针 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 # 创建列表 lst = [5, 7, 2, 3, 4] K = 1 res = k_diff_element(lst, K) print(res)
输出
[True, True, True]
结论
我们学习了 K 差的概念连续元素设置差值来检查给定列表的顺序。根据给定的输入列表和特定条件和操作,所有输出都有差异。这种类型的程序通常用于解决算法问题语句。