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

आकार K के उप-सरणी की संख्या और C++ में औसत से अधिक या थ्रेसहोल्ड के बराबर औसत


मान लीजिए कि हमारे पास arr पूर्णांकों की एक सरणी है और दो पूर्णांक k और थ्रेशोल्ड हैं। हमें k आकार के उप-सरणियों की संख्या और थ्रेशोल्ड से अधिक या उसके बराबर औसत का पता लगाना है। तो अगर इनपुट इस तरह है:[2,2,2,2,5,5,5,8] और के =3 और थ्रेशोल्ड =4, तो आउटपुट 3 होगा। क्योंकि उप-सरणी [2,5,5] , [5,5,5] और [5,5,8] का औसत क्रमशः 4, 5 और 6 है।

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

  • योग:=0, डिव:=के और एन:=सरणी में तत्वों की संख्या

  • सेट योग :=गिरफ्तारी के सभी तत्वों का योग

  • रिट:=0

  • i :=0 और j के लिए k से n-1 की सीमा में, i और j दोनों को 1 से बढ़ाएं

    • अगर योग / div>=थ्रेशोल्ड, तो रेस को 1 से बढ़ा दें

    • गिरफ्तारी से राशि घटाएं[i]

    • गिरफ्तारी द्वारा राशि बढ़ाएं[j]

  • अगर योग / div>=थ्रेशोल्ड, तो रिट को 1 से बढ़ा दें

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

उदाहरण (C++)

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int numOfSubarrays(vector<int>& arr, int k, int threshold) {
      double sum = 0;
      double div = k;
      int n = arr.size();
      for(int i = 0; i < k; i++){
         sum += arr[i];
      }
      int ret = 0;
      for(int i = 0, j = k; j < n; i ++, j++){
         if(sum / div >= threshold ){
            ret++;
         }
         sum -= arr[i];
         sum += arr[j];
      }
      if(sum / div >= threshold ){
         ret++;
      }
      return ret;
   }
};
main(){
   vector<int> v = {2,2,2,2,5,5,5,8};
   Solution ob;
   cout << (ob.numOfSubarrays(v, 3, 4));
}

इनपुट

[2,2,2,2,5,5,5,8]
3
4

आउटपुट

3

  1. न्यूनतम संख्याएं जो N से छोटी या उसके बराबर हों और C++ में योग S के साथ हों

    समस्या कथन 1 से N और एक संख्या S से N नंबर दिए गए हैं। कार्य S को देने के लिए योग की न्यूनतम संख्या को प्रिंट करना है उदाहरण यदि n =7 और s =10 तो न्यूनतम 2 संख्याएँ आवश्यक हैं (9, 1) (8, 2) (7, 3) (6, 4) एल्गोरिदम Answer can be calculated using below formula (S/N) + 1 if { S %N > 0} उदाहरण #inc

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ का प्रयोग करते हुए x और उसके अंकों का योग दिए गए n के बराबर हो।

    यहां हम एक समस्या देखेंगे, जहां हम एक संख्या n लेते हैं, हमें एक और मान x ज्ञात करना होता है, जैसे कि x का x + अंकों का योग दी गई संख्या n के समान हो। मान लीजिए n का मान 21 है। यह प्रोग्राम एक संख्या x =15, 15 + अंकों का योग 15, यानी 15 + 1 + 5 =21 =n के रूप में लौटाएगा। इस समस्या को हल करने के लिए

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ में x और उसके अंकों का योग दिए गए n के बराबर हो

    यहां हम एक समस्या देखेंगे, जहां हम एक संख्या n लेते हैं, हमें एक और मान x ज्ञात करना होता है, जैसे कि x का x + अंकों का योग दी गई संख्या n के समान हो। मान लीजिए n का मान 21 है। यह प्रोग्राम एक संख्या x =15, 15 + अंकों का योग 15, यानी 15 + 1 + 5 =21 =n के रूप में लौटाएगा। इस समस्या को हल करने के लिए