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

सी # का उपयोग करके दिए गए लक्ष्य के करीब अद्वितीय ट्रिपल कैसे खोजें?

दो पॉइंटर्स पैटर्न और ट्रिपल सम टू जीरो के समान है। हम एक समय में एक नंबर लेते हुए, सरणी के माध्यम से पुनरावृति करने के लिए एक समान दृष्टिकोण का पालन कर सकते हैं। हर कदम पर, हम ट्रिपलेट और लक्ष्य संख्या के बीच के अंतर को बचाएंगे, और प्रत्येक चरण में हम इसकी तुलना अब तक के न्यूनतम लक्ष्य अंतर से करेंगे, ताकि अंत में, हम ट्रिपलेट को निकटतम योग के साथ वापस कर सकें।

समय की जटिलता

सरणी को छाँटने पर O(N* logN) लगेगा। कुल मिलाकर threeSumClosest() O(N * logN + N^2) लेगा, जो कि विषम रूप से O(N^2) के बराबर है।

अंतरिक्ष जटिलता

उपरोक्त एल्गोरिथम की अंतरिक्ष जटिलता O(N) होगी जो छँटाई के लिए आवश्यक है।

उदाहरण

public class Arrays{
   public int ThreeSumClosest(int[] num, int target){
      if (num == null || num.Length == 0){
         return -1;
      }
      int[] nums = num.OrderBy(x => x).ToArray();
      int initialclosest = nums[0] + nums[1] + nums[2];
      for (int i = 0; i < nums.Count(); i++){
         int left = i + 1;
         int right = nums.Length - 1;
         while (left < right){
            int newClosest = nums[i] + nums[left] + nums[right];
            if (Math.Abs(newClosest - target) < Math.Abs(initialclosest - target)){
               initialclosest = newClosest;
            }
            if (newClosest == target){
               return newClosest;
            }
            else if (newClosest < target){
               left++;
            }
            else
            {
               right--;
            }
         }
      }
      return initialclosest;
   }
}

static void Main(string[] args){
   Arrays s = new Arrays();
   int[] nums = { -1, 2, 1, -4 };
   Console.WriteLine(s.ThreeSumClosest(nums, 1));
}

आउटपुट

2

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

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

  1. पायथन का उपयोग करके किसी दिए गए वर्ष की पहली तारीख कैसे खोजें?

    इस प्रोग्राम में हमें साल के पहले दिन को प्रिंट करना होता है। हमें उपयोगकर्ता इनपुट के रूप में एक वर्ष लेना होगा। एल्गोरिदम Step 1: Import the datetime library. Step 2: Take year as input from the user. Step 3: Get the first day of the year by passing month, day and year as parameters to the datetim

  1. पायथन का उपयोग करके दी गई संख्या में अंकों की संख्या कैसे ज्ञात करें?

    इस प्रोग्राम में, हमें उपयोगकर्ता द्वारा दिए गए पूर्णांक में अंकों की संख्या ज्ञात करनी होती है। उदाहरण के लिए उपयोगकर्ता इनपुट:123, आउटपुट:3 उपयोगकर्ता इनपुट:1987, आउटपुट:4 एल्गोरिदम Step 1: Take Integer value as input value from the userStep 2: Divide the number by 10 and convert the quotient in