Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

सी # का उपयोग करके ज़ीरो को जोड़ने वाले सभी अद्वितीय ट्रिपल कैसे खोजें?


आसान तरीका यह है कि हम तीन नेस्टेड लूप बना सकते हैं और एक-एक करके जांच सकते हैं कि तीनों तत्वों का योग शून्य है या नहीं। यदि तीन तत्वों का योग शून्य है तो प्रिंट तत्व।

समय की जटिलता - हे(n 3 )

अंतरिक्ष जटिलता -ओ(1)

हम सरणी के प्रत्येक मान को संग्रहीत करने के लिए एक अनियंत्रित सेट डेटा संरचना का उपयोग कर सकते हैं। सेट ओ (1) समय में किसी तत्व को खोजने का लाभ प्रदान करता है। इसलिए, सरणी में प्रत्येक जोड़ी के लिए, हम उनके योग के ऋणात्मक की तलाश करेंगे जो सेट में मौजूद हो सकते हैं। यदि ऐसा कोई तत्व पाया जाता है तो हम त्रिक को प्रिंट कर सकते हैं जो पूर्णांकों का युग्म और उनके योग का ऋणात्मक मान होगा।

समय की जटिलता - हे(n 2 )

अंतरिक्ष जटिलता -ओ(एन)

उदाहरण

public class Arrays{
   public List<List<int>> ThreeSum(int[] nums){
      List<List<int>> res = new List<List<int>>();
      if (nums == null || nums.Length == 0){
         return res;
      }
      var newnums = nums.OrderBy(x => x).ToArray();
      for (int i = 0; i < newnums.Count(); i++){
         int left = i + 1;
         int right = newnums.Count() - 1;
         while (left < right){
            int sum = newnums[i] + newnums[left] + newnums[right];
            if (sum == 0){
               List<int> l = new List<int>();
               l.Add(newnums[i]);
               l.Add(newnums[left]);
               l.Add(newnums[right]);
               res.Add(l);
               int leftValue = newnums[left];
               while (left < newnums.Length && leftValue == newnums[left]){
                left++;
               }
               int riightValue = newnums[right];
               while (right > left && riightValue == newnums[right]){
                  right--;
               }
            }
            else if (sum < 0){
               left++;
            }
            else{
               right--;
            }
         }
         while (i + 1 < newnums.Length && newnums[i] == newnums[i + 1]){
            i++;
         }
      }
      return res;
   }
}

static void Main(string[] args){
   Arrays s = new Arrays();
   int[] nums = { -1, 0, 1, 2, -1, -4 };
   var ss = s.ThreeSum(nums);
   foreach (var item in ss){
      foreach (var item1 in item){
         Console.WriteLine(item1);
      }
   }
}

आउटपुट

[[-1,-1,2],[-1,,0,1]]

  1. Numpy का उपयोग करके किसी दिए गए मैट्रिक्स के सभी तत्वों का योग कैसे प्राप्त करें?

    इस कार्यक्रम में, हम numpy लाइब्रेरी में योग () फ़ंक्शन का उपयोग करके एक numpy मैट्रिक्स की सभी शर्तों को जोड़ देंगे। हम पहले एक यादृच्छिक संख्यात्मक मैट्रिक्स बनाएंगे और फिर, हम सभी तत्वों का योग प्राप्त करेंगे। एल्गोरिदम Step 1: Import numpy. Step 2: Create a random m×n matrix using the rand

  1. पायथन में दिए गए योग के साथ सूची में सभी ट्रिपल खोजें

    संख्याओं की एक सूची में हम यह पता लगाना चाहते हैं कि एक निश्चित योग देने के लिए कौन से तीन तत्व जुड़ सकते हैं। हम इसे त्रिगुण कहते हैं। और सूची में ऐसे कई ट्रिपल हो सकते हैं। उदाहरण के लिए, योग 10 को संख्या 1,6,3 के साथ-साथ 1,5,4 के रूप में उत्पन्न किया जा सकता है। इस लेख में हम देखेंगे कि दी गई संख

  1. पायथन का उपयोग करके प्राकृतिक संख्याओं का योग कैसे ज्ञात करें?

    आप लूप के दौरान एक चर i के मान को क्रमिक रूप से बढ़ाने के लिए उपयोग कर सकते हैं और इसे संचयी रूप से जोड़ सकते हैं। s,i=0,0 n=10 while i<n:    i=i+1    s=s+i print ("sum of first 10 natural numbers",s) फॉर लूप का उपयोग प्राकृतिक संख्याओं की एक श्रृंखला पर लूप करने