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

C++ में सरणी में निकटतम संख्या ज्ञात करें


मान लीजिए हमारे पास n तत्वों की एक सरणी A है। और तत्व सॉर्टेड हैं। हमें दिए गए पूर्णांक के निकटतम मान को ढूंढना है। सरणी में डुप्लिकेट मान और ऋणात्मक संख्याएं हो सकती हैं। इसलिए यदि सरणी [2, 5, 6, 7, 8, 8, 9] की तरह है और लक्ष्य संख्या 4 है, तो निकटतम तत्व 5 है।

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

उदाहरण

#include<iostream> #include<list> using namespace std; int getNearest(int x, int y, int target) { if (target - x >= y - target) return y; else return x; } int getNearestElement(int arr[], int n, int target) { if (target <= arr[0]) return arr[0]; if (target >= arr[n - 1]) return arr[n - 1]; int left = 0, right = n, mid = 0; while (left < right) { mid = (left + right) / 2; if (arr[mid] == target) return arr[mid]; if (target < arr[mid]) { if (mid > 0 && target > arr[mid - 1]) return getNearest(arr[mid - 1], arr[mid], target); right = mid; } else { if (mid < n - 1 && target < arr[mid + 1]) return getNearest(arr[mid], arr[mid + 1], target); left = mid + 1; } } return arr[mid]; } int main() { int arr[] = { 2, 5, 6, 7, 8, 8, 9 }; int n = sizeof(arr) / sizeof(arr[0]); int target = 4; cout << "Nearest element of " << target << " is: " << getNearestElement(arr, n, target); }

आउटपुट

Nearest element of 4 is: 5

  1. - C++ प्रोग्राम: सरणी में प्रत्येक तत्व के लिए निकटतम बड़ा मान ज्ञात करना

    यहां हम देखेंगे कि सरणी में प्रत्येक तत्व के लिए निकटतम मान कैसे ज्ञात करें। यदि किसी तत्व x का अगला तत्व जो उससे बड़ा है, और सरणी में भी मौजूद है, तो वह उस तत्व का बड़ा मान होगा। यदि तत्व मौजूद नहीं है, तो -1 लौटाएं। मान लें सरणी तत्व [10, 5, 11, 6, 20, 12] हैं, तो बड़े तत्व [11, 6, 12, 10, -1, 20]

  1. - C++ प्रोग्राम: सरणी में प्रत्येक तत्व के लिए निकटतम बड़ा मान ज्ञात करना

    यहां हम देखेंगे कि सरणी में प्रत्येक तत्व के लिए निकटतम बड़ा मान कैसे ज्ञात करें। यदि किसी तत्व x का अगला तत्व जो उससे बड़ा है, और सरणी में भी मौजूद है, तो वह उस तत्व का बड़ा मान होगा। यदि तत्व मौजूद नहीं है, तो -1 लौटाएं। मान लें सरणी तत्व [10, 5, 11, 6, 20, 12] हैं, तो बड़े तत्व [11, 6, 12, 10, -1

  1. - C++ में सरणी में एक संख्या की फ्रीक्वेंसी ज्ञात करना

    मान लीजिए हमारे पास एक सरणी है। इसमें n अलग-अलग तत्व हैं। हमें सरणी में एक तत्व की फ्रीक्वेंसी जांचनी है। मान लीजिए A = [5, 12, 26, 5, 3, 4, 15, 5, 8, 4], यदि हम 5 की फ्रीक्वेंसी ढूंढने की कोशिश करते हैं, तो यह 3 होगी। इसे हल करने के लिए, हम सरणी को बाएं से स्कैन करेंगे, यदि तत्व दी गई संख्या के सम