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

सी++ में ऐरे को विशिष्ट बनाने के लिए न्यूनतम वेतन वृद्धि

मान लीजिए कि हमारे पास पूर्णांक ए की एक सरणी है, यहां एक चाल में कोई ए [i] चुनना होता है, और इसे 1 से बढ़ाना होता है। हमें प्रत्येक मान को अद्वितीय बनाने के लिए कम से कम चालों को ढूंढना होगा। तो अगर इनपुट [3,2,1,2,1,7] जैसा है, तो आउटपुट 6 होगा, जैसा कि 6 चालों के बाद, सरणी [3,4,1,2,5,7] हो सकती है, यह 5 या उससे कम चालों के साथ दिखाया जा सकता है कि सरणी के लिए सभी अलग-अलग मान होना असंभव है।

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

  • रिट:=0

  • सॉर्ट एरे ए

  • पहले किस मान पर विचार किया जाता है, इस पर नज़र रखने के लिए विज़िट नामक एक सेट बनाएं

  • मैं के लिए श्रेणी 1 से लेकर सरणी A - 1 के आकार तक

    • यदि A[i]

  • वापसी सेवानिवृत्त।

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int minIncrementForUnique(vector<int>& A) {
      int ret = 0;
      sort(A.begin(), A.end());
      set <int> visited;
      for(int i = 1; i < A.size(); i++){
         if(A[i] <= A[i - 1]){
            ret+= (A[i - 1] + 1) - A[i];
            A[i] = A[i - 1] + 1;
         }
      }
      return ret;
   }
};
main(){
   vector<int> v1 = {3,2,1,2,1,7};
   Solution ob;
   cout << (ob.minIncrementForUnique(v1));
}

इनपुट

[3,2,1,2,1,7]

आउटपुट

6

  1. सी ++ का उपयोग करके सभी तत्वों को 0 बनाने के लिए सरणी पर संचालन की न्यूनतम संख्या।

    समस्या कथन आकार एन की एक सरणी को देखते हुए और प्रत्येक तत्व या तो 1 या 0 है। कार्य सभी तत्वों को शून्य में बदलने के लिए किए जाने वाले संचालन की न्यूनतम संख्या की गणना करना है। कोई नीचे के ऑपरेशन कर सकता है - यदि कोई तत्व 1 है, तो आप उसका मान 0 के बराबर बदल सकते हैं - यदि अगला लगातार तत्व 1 है,

  1. C++ में सरणी के GCD को k का गुणज बनाने के लिए न्यूनतम संचालन

    मान लीजिए कि हमारे पास एक सरणी गिरफ्तारी और दूसरा मान k है। हमें सरणी के GCD को k के गुणज के बराबर बनाने के लिए न्यूनतम संख्या में संक्रियाओं का पता लगाना होगा। इस मामले में, ऑपरेशन मूल्य में वृद्धि या कमी कर रहा है। मान लीजिए कि सरणी {4, 5, 6} की तरह है, और k 5 है। हम 4 को 1 से बढ़ा सकते हैं और 6 क

  1. C++ में को-प्राइम ऐरे बनाने के लिए न्यूनतम इंसर्शन

    इस खंड में हम एक और दिलचस्प समस्या देखेंगे। मान लीजिए कि हमारे पास एन तत्वों की एक सरणी है। इस सरणी को सह-अभाज्य सरणी बनाने के लिए हमें न्यूनतम संख्या में प्रतिच्छेदन बिंदु खोजने होंगे। को-प्राइम एरे में हर दो लगातार एलीमेंट का gcd 1 होता है। हमें ऐरे को भी प्रिंट करना होता है। मान लीजिए हमारे पास