मान लीजिए कि हमारे पास n संख्याओं के साथ एक सरणी A है और दूसरा इनपुट K है, तो हमें वह सूचकांक खोजना होगा जो किसी दिए गए ऑपरेशन को करने के बाद शून्य तक कम होने वाला अंतिम होगा। ऑपरेशन को इस प्रकार समझाया गया है -
ए [0] से ए [एन -1] तक, प्रत्येक तत्व को ए [i] =ए [i] - के के रूप में अपडेट करें। अब, यदि ए [i] <के तो ए [i] =0 रखें और आगे नहीं 0 होने पर A[i] पर ऑपरेशन किया जाएगा।
हमें ऑपरेशन को तब तक दोहराना होगा जब तक कि सभी तत्व 0. तक कम न हो जाएं। और इंडेक्स को वापस कर दें जो शून्य होने के लिए अंतिम होगा।
इसलिए, यदि इनपुट ए =[4, 3, 6, 8, 3, 10] और के =4 जैसा है, तो आउटपुट 5 होगा क्योंकि ऑपरेशन नीचे की तरह हैं - ऑपरेशन 1 - ए ={0, 0, 2 , 4, 0, 6} ऑपरेशन 2 - ए ={0, 0, 0, 0, 0, 2} ऑपरेशन 3 - ए ={0,0, 0, 0, 0, 0}
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n :=A का आकार
-
आईडीएक्स:=-1
-
मेरे लिए 0 से n की सीमा में, करें
-
ए[i] :=(A[i] + k - 1) / k
-
-
मेरे लिए 0 से n की सीमा में, करें
-
अगर A[i]>=x, तो
-
एक्स:=ए[i]
-
आईडीएक्स:=मैं
-
-
-
वापसी आईडीएक्स
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def search_index(A, k): n = len(A) idx = -1 x = -10**9 for i in range(n): A[i] = (A[i] + k - 1) // k for i in range(n): if (A[i] >= x): x = A[i] idx = i return idx arr = [4, 3, 6, 8, 3, 10] K = 4 print(search_index(arr, K))
इनपुट
[4, 3, 6, 8, 3, 10], 4
आउटपुट
5