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

C++ में उस नोड को ढूंढें जिसका X के साथ निरपेक्ष अंतर न्यूनतम मान देता है


मान लीजिए हमारे पास एक ट्री है, और सभी नोड्स के वजन और एक पूर्णांक x है। हमें नोड i ढूंढना है, जैसे कि |weight[i] - x| न्यूनतम हो। यदि ग्राफ नीचे की तरह है, और x = 15

C++ में उस नोड को ढूंढें जिसका X के साथ निरपेक्ष अंतर न्यूनतम मान देता है

आउटपुट 3 होगा। अब विभिन्न नोड्स के लिए, यह नीचे की तरह होगा:

नोड 1, |5 – 15| = 10

नोड 2, |10 – 15| = 5

नोड 3, |11 – 15| = 4

नोड 4, |8 – 15| = 7

नोड 5, |6 – 15| = 9

विचार सरल है। हम ट्री पर DFS करेंगे, और उस नोड को ट्रैक करेंगे, जिसका भारित निरपेक्ष अंतर x के साथ न्यूनतम मान देता है।

उदाहरण

#include <iostream> #include <vector> #include <cmath> using namespace std; int min_value = INT_MAX, x, result; vector<int> graph[100]; vector<int> weight(100); void dfs(int node, int parent) { if (min_value > abs(weight[node] - x)) { min_value = abs(weight[node] - x); result = node; } for (int to : graph[node]) { if (to == parent) continue; dfs(to, node); } } int main() { x = 15; weight[1] = 5; weight[2] = 10; weight[3] = 11; weight[4] = 8; weight[5] = 6; graph[1].push_back(2); graph[2].push_back(3); graph[2].push_back(4); graph[1].push_back(5); dfs(1, 1); cout << "The node number is: " << result; }

आउटपुट

The node number is: 3

  1. - मैट्रिक्स के किसी भी कॉलम में अधिकतम अंतर वाली जोड़ी खोजें C++ में

    मान लीजिए हमारे पास NxN क्रम का एक मैट्रिक्स है। हमें तत्वों की एक जोड़ी खोजनी है जो मैट्रिक्स के किसी भी कॉलम से अधिकतम अंतर बनाती है। तो यदि मैट्रिक्स इस तरह है - 123 535 967 तो आउटपुट 8 होगा। क्योंकि जोड़ी (1, 9) कॉलम 0 से है। विचार सरल है, हमें बस प्रत्येक कॉलम के अधिकतम और न्यूनतम तत्वों के

  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) होंगी। हल दृष्टिकोण इस समस्या को हल करन