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

更新于:2023年8月16日

浏览量:119

开启您的职业生涯

完成课程获得认证

开始学习
广告