दो-सूचक और स्लाइडिंग विंडो पैटर्न
पैटर्न 1: लगातार विंडो (जैसे विंडो = 4 या कुछ पूर्णांक मान)
उदाहरण के लिए (-ve और ve) पूर्णांकों की एक सरणी दी गई है, जो आकार k की सन्निहित विंडो के लिए अधिकतम योग ढूंढती है।
पैटर्न 2:(परिवर्तनीय विंडो आकार) पैटर्न 3: उपसरणी/सबस्ट्रिंग की संख्या जहां इस समस्या को पैटर्न 2 इसे इस प्रकार तोड़ा जा सकता है पैटर्न 4: सबसे छोटी/न्यूनतम विंडो ढूंढें पैटर्न 2 के लिए अलग-अलग दृष्टिकोण: दो पॉइंटर्स और स्लाइडिंग विंडो का उपयोग करके बेहतर दृष्टिकोण इष्टतम दृष्टिकोण: एक इष्टतम दृष्टिकोण केवल बाईं ओर को सिकोड़ना होगा जब तक कि उपसरणी की लंबाई मैक्सलेन से अधिक न हो, जब उपसरणी शर्त को संतुष्ट नहीं कर रही हो (
इसे हल करना बहुत मुश्किल है क्योंकि यह मुश्किल हो जाता है कि कब विस्तार करना है (दाएं) या कब सिकुड़ना है (बाएं)।
का उपयोग करके हल किया जा सकता है
समस्याओं को हल करने के लिए जैसे कि सबस्ट्रिंग की संख्या ज्ञात करना जहां योग =k.
उदाहरण: योग के साथ सबसे बड़ा उपसरणी
public class Sample{
public static void main(String args[]){
n = 10;
int arr[] = new int[n];
//Brute force approach for finding the longest subarray with sum k) break; /// optimization if the sum is greater than the k, what is the point in going forward?
}
}
//O(n n) in the worst case r will move from 0 to n and in the worst case left will move from 0 0 n as well so 2n
int left = 0;
int right =0;
int sum = 0;
int maxLen = 0;
while(right
हम जानते हैं कि यदि हमें उपसरणी मिल जाती है तो हम उसकी लंबाई को maxLen में संग्रहित करते हैं, लेकिन arr[right] जोड़ते समय यदि योग k से अधिक हो जाता है तो वर्तमान में हम sum = sum-arr[left] करके और बाएँ करके बाएँ को सिकोड़ रहे हैं।
हम जानते हैं कि वर्तमान अधिकतम लंबाई maxLen है, यदि हम बाएं सूचकांक को सिकोड़ते रहते हैं तो हमें स्थिति ( maxLen वाला एक अन्य उपसरणी ढूंढें, तभी maxLen को अपडेट किया जाएगा। int right =0;
int sum = 0;
int maxLen = 0;
while(right
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3