Python - K 差值连续元素

pythonserver side programmingprogramming更新于 2023/12/29 20:58:00

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 差的概念连续元素设置差值来检查给定列表的顺序。根据给定的输入列表和特定条件和操作,所有输出都有差异。这种类型的程序通常用于解决算法问题语句。


相关文章