में उप-सरणी योग ढूँढना एन सकारात्मक पूर्णांक की एक सरणी को देखते हुए। इसमें n*(n+1)/2
उप-सरणी हो सकती है जिसमें एकल तत्व उप-सरणी शामिल हैं। प्रत्येक उप-सरणी में S
है। सभी उप-सरणी के लिए S's
खोजें O(n^2)
उप-सरणी की संख्या O(n^2)
है। कई रकम S's
भी दोहराया जा सकता है। O(n logn)
में सभी अलग-अलग योगों की गणना करने के लिए कोई तरीका नहीं है (रकम के सटीक मूल्य नहीं बल्कि केवल गिनती है)।एक पूर्णांक सरणी
मैंने एक दृष्टिकोण की कोशिश की लेकिन रास्ते पर फंस गया। मैंने इंडेक्स 1 से एन तक सरणी को पुन: सक्रिय किया।
कहें a[i]
दिया गया सरणी है। प्रत्येक इंडेक्स i
, a[i]
सभी रकम में जोड़ देगा जिसमें a[i-1]
शामिल है और इसमें व्यक्तिगत तत्व भी शामिल होगा। लेकिन अगर डुप्लिकेट a[i-1]
शामिल है, तो डुप्लिकेट उभरा होगा, दो रकम का अंतर a[i]
है। मेरा मतलब है कि, Sp
और Sq
a[i-1]
पर समाप्त होता है और दोनों का अंतर a[i]
है। फिर Sp + a[i]
Sq
के बराबर है, जो डुप्लिकेट के रूप में Sq
दे रहा है।
कहें C[i]
अलग-अलग रकम की गणना है जिसमें a[i]
पर समाप्त होता है।
तो C[i] = C[i-1] + 1 - numbers of pairs of sums in which a[i-1] is involved whose difference is a[i]
।
लेकिन समस्या O(log n)
में जोड़े की संख्या का हिस्सा खोजने के लिए है। कृपया मुझे इसके बारे में कुछ संकेत दें या यदि मैं गलत तरीके से हूं और पूरी तरह से अलग दृष्टिकोण की आवश्यकता है तो समस्या को इंगित करें।
अच्छा, यह एक दिलचस्प समस्या है।जो कुछ भी मैं संभावित रूप से आ रहा हूं, उसे इनपुट तत्वों के सभी जोड़ों पर विचार करने की आवश्यकता है, जो ओ (एन^2) है। मेरा आंत कहता है कि यह असंभव है। – user2357112
मुझे उस व्यक्ति द्वारा आश्वासन दिया गया है जिसने मुझे समस्या दी है कि ओ (एन लॉगन) मौजूद है। मैंने पूरे दिन सोच बिताई। – user2011120
यदि आप अभी भी कल अटक गए हैं, तो उसे एक समय सारिणी डेमो के लिए पूछें, ताकि आप जान सकें कि वह आपके साथ गड़बड़ नहीं कर रहा है। – user2357112