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

C++ में सबसे कम मान वाले K आइटम ढूंढें


इस समस्या में, हमें एक सूची दी गई है जिसमें आइटम और उनके मान हैं और एक पूर्णांक k। हमारा कार्य सबसे कम मान वाले K आइटम ढूंढना है।

समस्या विवरण: हमें सूची से k आइटम ढूंढने हैं जिनका मान सबसे कम है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: item-value = { {item1, 200}, {item2, 100}, {item3, 500}, {item4, 400}} k = 2

आउटपुट: item1 , item2

व्याख्या:

सबसे कम मान वाले दो तत्व item1 (200 के साथ) और item2 (100 के साथ) हैं।

समाधान दृष्टिकोण

समस्या का एक समाधान लालची तरीके से k आइटम को सबसे कम मान के साथ ढूंढना है। हम पहले आइटम सूची को मान के आरोही क्रम में सॉर्ट करेंगे। इस सॉर्ट की गई सूची से हम k सबसे कम मान वाले आइटम ढूंढेंगे।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <bits/stdc++.h>
using namespace std;

bool compVal(pair<string, int> A, pair<string, int> B) {
    if (A.second == B.second)
        return A.first < B.first;
    return A.second < B.second;
}

int main() {
    int k = 2;
    int n = 3;
    vector<pair<string, int> > items;
    items.push_back(make_pair("item1", 350));
    items.push_back(make_pair("item2", 150));
    items.push_back(make_pair("item3", 500));
    items.push_back(make_pair("item4", 100));
    sort(items.begin(), items.end(), compVal);
    cout<<k<<" items with least value are \n";
    for (int i = 0; i < min(n, k); ++i)
        cout<<"Item : "<<items[i].first<<", value : "<<items[i].second<<endl;
    return 0;
}

आउटपुट

2 items with least value are Item : item4, value : 100 Item : item2, value : 150

  1. - दिए गए प्रतिबंधों के साथ मैट्रिक्स में सबसे लंबा पथ खोजें C++ में

    मान लीजिए हमारे पास n क्रम का एक वर्ग मैट्रिक्स है। इसमें सभी अलग-अलग तत्व हैं। तो हमें अधिकतम लंबाई का पथ खोजना है, जैसे कि पथ के साथ सभी सेल 1 के अंतर के साथ बढ़ते क्रम में हों। एक सेल से हम चार दिशाओं में जा सकते हैं। बाएं, दाएं, ऊपर और नीचे। तो यदि मैट्रिक्स इस तरह है - 129 538 467 तो आउटपुट

  1. C++ में बाइनरी सर्च ट्री में न्यूनतम मान वाला नोड ज्ञात करें C++ में बाइनरी सर्च ट्री में न्यूनतम मान वाला नोड ज्ञात करें

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री है। हमें बाइनरी सर्च ट्री में न्यूनतम तत्व ढूंढना है। इसलिए यदि BST नीचे की तरह है: न्यूनतम तत्व 1 होगा। जैसा कि हम जानते हैं कि बायां उपट्री हमेशा छोटे तत्वों को धारण करता है। इसलिए यदि हम बाएं उपट्री के माध्यम से तब तक ट्रैवर्स करते हैं जब तक बायां NULL नही

  1. - C++ में दिए गए अंतर वाली जोड़ी ढूंढें

    समस्या विवरण एक सरणी A दी गई है जिसमें n विभिन्न तत्व हैं। हमें सरणी से एक जोड़ी (x, y) ढूंढनी है जिससे x और y का अंतर दिए गए अंतर d के बराबर हो। उदाहरण के लिए, यदि सरणी A = [10, 15, 26, 30, 40, 70] है और दिया गया अंतर 30 है, तो जोड़ियां (10, 40) और (30, 70) होंगी। हल दृष्टिकोण इस समस्या को हल करन