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

C++ में ऐरे के अधिकतम एलिमेंट्स गिनना जिनका निरपेक्ष अंतर K से अधिक नहीं है


हमें एक ऐरे दिया गया है मान लीजिए arr[] पूर्णांक एलिमेंट्स का किसी भी दिए गए आकार का और एक सकारात्मक पूर्णांक k और कार्य उन एलिमेंट जोड़ियों की संख्या की गणना करना है जिनका निरपेक्ष अंतर दिए गए पूर्णांक k से अधिक नहीं है।

ऐरे एक प्रकार की डेटा संरचना है जो एक ही प्रकार के एलिमेंट्स के निश्चित आकार के अनुक्रमिक संग्रह को स्टोर कर सकती है। एक ऐरे का उपयोग डेटा के संग्रह को स्टोर करने के लिए किया जाता है, लेकिन अक्सर एक ऐरे को एक ही प्रकार के वैरिएबल्स के संग्रह के रूप में सोचना अधिक उपयोगी होता है।

उदाहरण

इनपुट: int arr[] = {2, 3, 6, 12, 14}, k = 5 आउटपुट: count is: 3

व्याख्या: अधिकतम निरपेक्ष अंतर k यानी 5 से अधिक नहीं होने वाले जोड़े इस उदाहरण में बने जोड़े हैं: (2, 3), (2, 6), (3,6) यानी {2, 3, 6} इसलिए काउंट 3 है।

इनपुट: int arr[] = {2, 3, 6, 12, 14}, k = 10 आउटपुट: count is: 4

व्याख्या: अधिकतम निरपेक्ष अंतर k यानी 10 से अधिक नहीं होने वाले जोड़े इस उदाहरण में बने जोड़े हैं: (2, 3), (2, 6), (3,6), (2, 12), (3, 12), (6, 12) यानी {2, 3, 6, 12} इसलिए काउंट 4 है क्योंकि अधिकतम एलिमेंट्स 4 हैं।

इनपुट: int arr[] = {2, 3, 6, 12, 14}, k = 0 आउटपुट: count is: 0

व्याख्या: चूंकि अंतर 0 वाली कोई जोड़ी नहीं है इसलिए काउंट 0 है।

उपयोग किया गया दृष्टिकोण:

  • एक ऐरे बनाएं मान लीजिए arr[] और एक सकारात्मक पूर्णांक k
  • length() फ़ंक्शन का उपयोग करके ऐरे की लंबाई की गणना करें
  • एलिमेंट्स की संख्या स्टोर करने के लिए एक अस्थायी वैरिएबल लें
  • दो अस्थायी वैरिएबल घोषित करें मान लीजिए first और last और 0 से इनिशियलाइज़ करें
  • सॉर्ट मेथड को कॉल करें ऐरे को सॉर्ट करने के लिए और ऐरे और ऐरे के आकार को फ़ंक्शन के तर्क के रूप में पास करें
  • i के लिए 0 से लूप शुरू करें और i ऐरे के आकार से कम हो
    • लूप के अंदर, जब तक j < आकार && arr[j] <= arr[i] + k शुरू करें
      • जबकि के अंदर, जांचें यदि काउंट < j-i तो काउंट को j - i पर सेट करें और first को i और last को j पर सेट करें
  • काउंट वापस करें
  • परिणाम प्रिंट करें।

उदाहरण (C++ कोड)

#include <iostream> 
#include <algorithm> 
using namespace std; 
int countmax(int arr[], int size, int K){ 
    int result = 0; 
    int i = 0, j = 0; 
    int beg = 0; 
    int end = 0; 
    // ऐरे को सॉर्ट करें 
    sort(arr, arr + size); 
    // अधिकतम एलिमेंट्स ढूंढें 
    for (i = 0; i < size; i++) { 
        // उन सभी एलिमेंट्स को गिनें जो रेंज में हैं 
        while (j < size && arr[j] <= arr[i] + K) 
            j++; 
        if (result < (j - i)) { 
            result = (j - i); 
            beg = i; 
            end = j; 
        } 
    } 
    // अधिकतम काउंट वापस करें 
    return result; 
} 
// मुख्य फ़ंक्शन 
int main(){ 
    int arr[] = { 2, 3, 6, 12, 14 }; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    int K = 5; 
    cout << "count is " << countmax(arr, size, K) << endl; 
    return 0; 
}

आउटपुट

count is 3
  1. - C++ में संख्या के सम गुणनखंडों का योग (सरल दृष्टिकोण)

    समस्या विवरण इस खंड में हम देखेंगे कि हम किसी संख्या के सभी सम अभाज्य गुणनखंडों का योग कुशल तरीके से कैसे प्राप्त कर सकते हैं। मान लीजिए एक संख्या n = 480 है, हमें इसके सभी गुणनखंड प्राप्त करने हैं। 480 के अभाज्य गुणनखंड 2, 2, 2, 2, 2, 3, 5 हैं। सभी सम गुणनखंडों का योग 2+2+2+2+2 = 10 है। नियम जब

  1. - C++ में रिकर्सन का उपयोग करके किसी संख्या का फैक्टोरियल खोजने का प्रोग्राम

    एक गैर-ऋणात्मक पूर्णांक n का फैक्टोरियल उन सभी धनात्मक पूर्णांकों का गुणनफल होता है जो n से कम या बराबर होते हैं। उदाहरण के लिए: 4 का फैक्टोरियल 24 है। 4! = 4 * 3 * 2 *1 4! = 24 एक पूर्णांक का फैक्टोरियल रिकर्सिव प्रोग्राम या इटरेटिव प्रोग्राम का उपयोग करके पाया जा सकता है। निम्नलिखित प्रोग्राम एक स

  1. - C++ प्रोग्राम: द्विघात समीकरण के सभी मूल खोजें

    परिचयएक द्विघात समीकरण ax² + bx + c के रूप में होता है। द्विघात समीकरण के मूल निम्न सूत्र द्वारा दिए जाते हैं - तीन मामले हैं - b² < 4*a*c - मूल वास्तविक नहीं हैं यानी वे कॉम्प्लेक्स हैं b² = 4*a*c - मूल वास्तविक हैं और दोनों मूल समान हैं 4*a*c - मूल वास्तविक हैं और दोनों मूल अलग हैं उदाहरण#incl