मान लीजिए कि हमारे पास अद्वितीय सकारात्मक मूल्यों के साथ एक सरणी संख्या है, हमें टुपल्स (ए, बी, सी, डी) की संख्या इस तरह से ढूंढनी है कि ए * बी =सी * डी जहां ए, बी, सी, और डी अंकों के तत्व हैं , और सभी तत्व a, b, c और d अलग हैं।
इसलिए, यदि इनपुट nums =[2,3,4,6] जैसा है, तो आउटपुट 8 होगा क्योंकि हम (2,6,3,4), (2,6,4,3) जैसे टुपल्स प्राप्त कर सकते हैं। , (6,2,3,4), (6,2,4,3), (3,4,2,6), (4,3,2,6), (3,4,6,2) , (4,3,6,2)।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- dic :=एक खाली नक्शा, कुछ कुंजी मौजूद नहीं होने पर डिफ़ॉल्ट मान 0 है
- उत्तर:=0
- मैं के लिए 0 से लेकर अंकों के आकार - 2 तक, करें
- j के लिए i+1 से लेकर अंकों के आकार तक, करें
- dic[nums[i]*nums[j]] :=dic[nums[i]*nums[j]] + 1
- j के लिए i+1 से लेकर अंकों के आकार तक, करें
- dic के सभी मानों की सूची में प्रत्येक v के लिए, करें
- यदि v 1 के समान है, तो
- अगले पुनरावृत्ति के लिए जाएं
- v:=v-1
- s:=(v/2) * (8+8*v)
- उत्तर:=उत्तर + एस
- यदि v 1 के समान है, तो
- पूर्णांक के रूप में उत्तर दें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
संग्रह से [अंक [i]*nums[j]]+=1 v के लिए dic.values():यदि v==1:जारी रखें v=v-1 s=(v/2) * (8+8*v) ans+=s वापसी int(ANS) nums =[3,4,6,2]प्रिंट (समाधान (संख्या))इनपुट
[3,4,6,2]
आउटपुट
0