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

C# का उपयोग करके लक्ष्य के निकटतम चौगुनी को कैसे खोजें?


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

समय जटिलता

सरणी को सॉर्ट करने में O(N* logN) लगेगा। समग्र fourSumClosest() में O(N * logN + N^3) लगेगा, जो स्पर्शोन्मुख रूप से O(N^3) के बराबर है।

स्पेस जटिलता

उपरोक्त एल्गोरिदम की स्पेस जटिलता O(N) होगी जो सॉर्टिंग के लिए आवश्यक है।

उदाहरण

public class Arrays{    public int FourSumClosestToTarget(int[] nums, int target){       if (nums == null || nums.Length == 0){          return -1;       }       int[] newNums = nums.OrderBy(x => x).ToArray();       int initialSum = newNums[0] + newNums[1] + newNums[2] + newNums[3];       for (int i = 0; i < nums.Length; i++){          for (int j = i; j < nums.Length; j++){             int left = j + 1;             int right = nums.Length - 1;             while (left < right){                int nearestSum = newNums[i] + newNums[j] + newNums[left] + newNums[right];                if (nearestSum < initialSum){                   initialSum = nearestSum;                }                if (nearestSum == target){                   return nearestSum;                }                else if (nearestSum < target){                   left++;                }                else{                   right--;                }             }          }       }      return initialSum;    } } static void Main(string[] args){    Arrays s = new Arrays();    int[] nums = { 1,0,-1,0,-2,2 };    var ss = FourSumClosestToTarget(nums,0);    Console.WriteLine(ss); }

आउटपुट

0
  1. - प्रॉपर्टी का उपयोग करके जैग्ड सरणी की लंबाई कैसे ढूंढें

    सबसे पहले, एक जैग्ड सरणी घोषित करें और आरंभ करें। int[][] arr = new int[][] { new int[] { 0, 0 }, new int[] { 1, 2 }, new int[] { 2, 4 }, new int[] { 3, 6 }, new int[] { 4, 8 } }; अब लंबाई प्राप्त करने के लिए लेंथ प्रॉपर्टी का उपयोग करें। arr.Length निम्नलिखित पूरा कोड है: उदाहरण using System; publ

  1. - Python का उपयोग करके संख्या का फैक्टोरियल कैसे खोजें?

    Python में संख्या का फैक्टोरियल खोजना किसी संख्या का फैक्टोरियल 1 और उस संख्या के बीच के सभी पूर्णांकों का गुणनफल होता है। दी गई संख्या का फैक्टोरियल खोजने के लिए, आइए 1 से उस संख्या तक की रेंज पर एक फॉर लूप बनाएं। याद रखें कि range() फ़ंक्शन स्टॉप मान को बाहर करता है। इसलिए स्टॉप मान इनपुट संख्या

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

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