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

सी ++ का उपयोग करके सरणी से अंतिम हटाए गए तत्व की स्थिति का पता लगाएं

इस समस्या में, हमें आकार N का एक arr [] और एक पूर्णांक मान M दिया जाता है। हमारा कार्य सरणी से अंतिम हटाए गए तत्व की स्थिति का पता लगाना है

सरणी से मानों को हटाना संचालन पर आधारित है -

  • सरणी में एक तत्व के लिए गिरफ्तार [i]। अगर arr[i]> M, मान को पॉप करें और arr[i] - M को ऐरे के अंत में पुश करें। अन्यथा इसे सरणी से हटा दें।

सरणी में तत्वों के होने तक संचालन करें।

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

इनपुट

arr[] = {5, 4, 8}, M = 3

आउटपुट

3

स्पष्टीकरण

Removing values using operations,
{5, 4, 8} -> {4, 8, 2} -> {8, 1, 2} -> {1, 2, 5} -> {2, 5} -> {5} -> {2} ->
empty array.
The last value removed is 8, position is 3.

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

समस्या का एक सरल समाधान इस तथ्य का उपयोग करके हटाए जाने वाले अंतिम मान का पता लगाना है कि प्रत्येक मान जिसे अंतिम रूप से हटाया जाएगा उसका सबसे बड़ा मान ceil(arr[i] / M) है ।

अंतिम सरणी से बाहर निकलने वाले तत्वों की स्थिति का पता लगाने के लिए, हम सरणी को पार करेंगे और स्थिति को ceil(arr[i] / M) के अधिकतम मान के साथ संग्रहीत करेंगे। ।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <iostream>
using namespace std;
int findLastRemPos(int arr[], int n, int m){
   for (int i = 0; i < n; i++) {
      arr[i] = (arr[i] / m + (arr[i] % m != 0));
   }
   int lastRemPos = -1, largestVal = -1;
   for (int i = n - 1; i >= 0; i--) {
      if (largestVal < arr[i]) {
         largestVal = arr[i];
         lastRemPos = i;
      }
   }
   return lastRemPos + 1;
}
int main(){
   int arr[] = {5, 4, 8, 1};
   int n = sizeof(arr) / sizeof(arr[0]);
   int m = 3;
   cout<<"The position of last removed element in the array is "<<findLastRemPos(arr, n, m);
   return 0;
}

आउटपुट

The position of last removed element in the array is 3

  1. सी # का उपयोग कर सरणी से अंतिम तत्व प्राप्त करने का कार्यक्रम

    एक सरणी घोषित करें और तत्व जोड़ें। int[] val = { 5, 8, 15, 25, 40, 55, 80, 100 }; अब, अंतिम तत्व प्राप्त करने के लिए क्वेरी करने योग्य अंतिम () विधि का उपयोग करें। val.AsQueryable().Last(); आइए देखें पूरा कोड। उदाहरण using System; using System.Collections.Generic; using System.Linq; class Demo { &

  1. सी # प्रोग्राम लैम्ब्डा एक्सप्रेशंस का उपयोग करके एक सरणी से सबसे बड़ा तत्व खोजने के लिए

    एक सरणी घोषित करें - int[] arr = { 10, 90, 20, 19, 99, 57 }; अब किसी सरणी से सबसे बड़ा तत्व प्राप्त करने के लिए, लैम्ब्डा अभिव्यक्तियों के साथ मैक्स () विधि का उपयोग करें - arr.Max()); यहाँ पूरा कोड है - उदाहरण using System; using System.Linq; class Demo {    static void Main() {  

  1. सी # प्रोग्राम एक सरणी में अंतिम मिलान तत्व खोजने के लिए

    अंतिम मिलान तत्व को खोजने के लिए, Array.LastIndexOf विधि का उपयोग करें। यदि तत्व पूर्णांक सरणी में मौजूद नहीं है तो -1 लौटाता है। निम्नलिखित सरणी है - int[] val = { 97, 45, 76, 21, 89, 45 }; अब, मान लें कि आपको एलिमेंट 45 के अंतिम इंडेक्स को खोजने की आवश्यकता है। उसके लिए, Array.LastIndexOf() विधि