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

सबअरे उत्पाद C++ में K से कम है


मान लीजिए कि हमने धनात्मक पूर्णांकों की एक सरणी दी है। हमें (सन्निहित) सबअरे की संख्या को गिनना और प्रिंट करना होगा जहां सबएरे में प्रत्येक तत्व का उत्पाद k से कम है। तो अगर इनपुट [10,5,2,6] और के :=100 जैसा है, तो आउटपुट 8 होगा। [10, 5], [5, 2], [2, 6] और [5, 2, 6]]

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

  • अस्थायी:=1, j:=0 और उत्तर:=0
  • i के लिए 0 से लेकर सरणी के आकार तक
    • अस्थायी:=अस्थायी * अंक [i]
    • जबकि अस्थायी>=k और j <=i, करते हैं
      • अस्थायी:=अस्थायी / अंक[j]
      • j को 1 से बढ़ाएं
    • उत्तर:=उत्तर + (i – j + 1)
  • वापसी उत्तर

उदाहरण(C++)

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

#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
class Solution {
public:
   int numSubarrayProductLessThanK(vector<int>& nums, int k) {
      lli temp = 1;
      int j = 0;
      int ans = 0;
      for(int i = 0; i < nums.size(); i++){
         temp *= nums[i];
         while(temp >= k && j <= i) {
            temp /= nums[j];
            j++;
         }
         ans += (i - j + 1);
      }
      return ans;
   }
};
main(){
   Solution ob;
   vector<int> v = {10,5,2,6};
   cout << (ob.numSubarrayProductLessThanK(v, 100));
}

इनपुट

[10,5,2,6]
100

आउटपुट

8

  1. C++ में Y से कम संख्या वाले सेटों की न्यूनतम संख्या

    समस्या कथन लगातार अंकों की एक स्ट्रिंग और एक संख्या Y को देखते हुए, कार्य न्यूनतम सेटों की संख्या ज्ञात करना है जैसे कि प्रत्येक सेट नीचे दिए गए नियम का पालन करता है - सेट में लगातार संख्याएं होनी चाहिए किसी भी अंक का एक से अधिक बार उपयोग नहीं किया जा सकता है। सेट में संख्या Y से अधिक नहीं होनी चा

  1. C++ में n से कम या उसके बराबर सभी भाज्य संख्याएँ ज्ञात कीजिए

    यहां हम देखेंगे कि n से कम या उसके बराबर सभी भाज्य संख्याओं को कैसे मुद्रित किया जाता है, एक संख्या N को भाज्य संख्या कहा जाता है यदि यह एक धनात्मक संख्या का भाज्य है। तो कुछ भाज्य संख्याएं 1, 2, 6, 24, 120 हैं। फैक्टोरियल नंबर प्रिंट करने के लिए, हमें सीधे फैक्टोरियल खोजने की जरूरत नहीं है। I =1 स

  1. सी ++ में एक उत्पाद सरणी पहेली (ओ (1) स्पेस)?

    यहां हम सरणी से संबंधित एक दिलचस्प समस्या देखेंगे। n तत्वों के साथ एक सरणी है। हमें n तत्वों की एक और सरणी बनानी है। लेकिन दूसरी सरणी की i-वें स्थिति i-वें तत्व को छोड़कर पहले सरणी के सभी तत्वों का गुणनफल धारण करेगी। और एक बाधा यह है कि हम इस समस्या में डिवीजन ऑपरेटर का उपयोग नहीं कर सकते हैं। हमें