मान लीजिए कि हमारे पास n पूर्णांकों के दो सरणियाँ A और B हैं, अब एक सरणी C पर विचार करें, जहाँ i-th संख्या d*A[i] + B[i] होगी और यहाँ d कोई मनमाना वास्तविक संख्या है। हमें d इस प्रकार ज्ञात करना है कि सरणी C में शून्य की अधिकतम संख्या हो। शून्य की संख्या भी लौटाएं।
इसलिए, यदि इनपुट A =[15, 40, 45] और B =[4, 5, 6] जैसा है, तो आउटपुट d =-0.266666 होगा, शून्य की संख्या 1
होगी।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n :=A का आकार
-
my_map :=एक नया नक्शा
-
गिनती :=0
-
मेरे लिए 0 से n की सीमा में, करें
-
यदि B[i] 0 के समान नहीं है और A[i] 0 के समान नहीं है, तो
-
वैल:=(-1.0 * बी[i]) / ए[i]
-
अगर वैल my_map में नहीं है, तो
-
my_map[val] :=0
-
-
my_map[val] :=my_map[val] + 1
-
-
अन्यथा जब B[i] 0 के समान हो और A[i] 0 के समान हो, तब
-
गिनती :=गिनती + 1
-
-
-
अधिकतम :=0;
-
my_map में प्रत्येक आइटम के लिए, करें
-
अधिकतम:=अधिकतम my_map[आइटम], अधिकतम
-
-
प्रत्येक कुंजी के लिए, my_map में मान, करें
-
यदि मान अधिकतम के समान हैं, तो
-
प्रदर्शन कुंजियाँ
-
लूप से बाहर आएं
-
-
-
अधिकतम + गिनती प्रदर्शित करें
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def find_d_zero(A, B) : n = len(A) my_map = {} count = 0 for i in range(n) : if (B[i] != 0 and A[i] != 0) : val = (-1.0 * B[i]) / A[i] if val not in my_map : my_map[val] = 0 my_map[val] += 1 elif (B[i] == 0 and A[i] == 0) : count += 1 maximum = 0; for item in my_map : maximum = max(my_map[item], maximum) for keys, values in my_map.items() : if (values == maximum) : print("d = ", keys) break print("Number of 0s: ", maximum + count) a = [15, 40, 45] b = [4, 5, 6] find_d_zero(a, b)
इनपुट
[15, 40, 45], [4,5,6]
आउटपुट
d = -0.26666666666666666 Number of 0s: 1