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

C++ में दाईं ओर के सबसे बड़े तत्व से तत्वों को बदलना


मान लें हमारे पास एक एरे A है। हमें प्रत्येक तत्व को उसके दाईं ओर के सबसे बड़े तत्व से बदलना है। और अंतिम को -1 से बदलना है। तो यदि A = [5, 17, 40, 6, 3, 8, 2], तो यह [40,40,8,8,8,2,-1] बन जाएगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −

  • हम एरे के तत्व को दाएं से बाएं पढ़ेंगे।
  • e := -1 लें
  • i := n – 1 से 0 तक
    • temp := e
    • e := e और array[i] के बीच अधिकतम
    • array[i] := temp
  • array लौटाएं

उदाहरण

बेहतर समझ के लिए निम्न कार्यान्वयन देखें −

#include <bits/stdc++.h> using namespace std; void print_vector(vector<int> v){    cout << "[";       for(int i = 0; i<v.size(); i++){          cout << v[i] << ", ";       }       cout << "]"<<endl; } class Solution {    public:       vector<int> replaceElements(vector<int>& arr) {          int rep = -1;          int n = arr.size();          for(int i = n - 1; i >= 0; i--){             int temp = rep;             rep = max(rep, arr[i]);             arr[i] = temp;          }          return arr;       } }; main(){    Solution ob;    vector<int> c = {5,17,40,6,3,8,2};    print_vector(ob.replaceElements(c)) ; }

इनपुट

[5,17,40,6,3,8,2]

आउटपुट

[40,40,8,8,8,2,-1]

  1. C++ में लिंक्ड लिस्ट में मनमाना पॉइंटर को दाईं ओर के सबसे बड़े मान वाले नोड पर इंगित करना C++ में लिंक्ड लिस्ट में मनमाना पॉइंटर को दाईं ओर के सबसे बड़े मान वाले नोड पर इंगित करना

    इस समस्या में, हमें एक लिंक्ड लिस्ट दी गई है जिसमें एक मान, लिंक पॉइंटर और एक मनमाना पॉइंटर है। हमारा कार्य मनमाना पॉइंटर को लिंक्ड लिस्ट में उसके दाईं ओर के सबसे बड़े मान की ओर इंगित करना है। समस्या को समझने के लिए एक उदाहरण लेते हैं, यहां, हम लिंक्ड लिस्ट के निम्नलिखित मनमाना पॉइंटर्स देख सकते ह

  1. - C++ STL में सेट का उपयोग करके राइट साइड पर छोटे एलिमेंट्स गिनें

    इस ट्यूटोरियल में, हम C++ STL में सेट का उपयोग करके राइट साइड पर छोटे एलिमेंट्स गिनने वाले प्रोग्राम पर चर्चा करेंगे।इसके लिए हमें एक ऐरे प्रदान किया जाएगा। हमारा कार्य एक नया ऐरे बनाना है और वर्तमान एलिमेंट की पोजीशन पर उसके राइट साइड पर छोटे एलिमेंट्स की संख्या जोड़ना है।उदाहरण#include <bits/st

  1. C++ में बाइनरी ट्री का राइट साइड व्यू C++ में बाइनरी ट्री का राइट साइड व्यू

    मान लीजिए हमारे पास एक बाइनरी ट्री है, यदि हम ट्री को दाईं ओर से देखते हैं, तो हम इसके कुछ एलिमेंट्स देख सकते हैं। हमें उन एलिमेंट्स को प्रदर्शित करना होगा। तो यदि ट्री इस तरह है −इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −हम dfs के लिए एक हेल्पिंग मेथड बनाएंगे। यह tree_node, उत्तरो