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

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.