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差值連續元素的概念,它設定差值來檢查給定列表的順序。根據給定的輸入列表和特定條件和操作,所有輸出之間都存在差異。這種型別的程式通常用於解決演算法問題陳述。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP