मान लीजिए कि हमारे पास 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