मैं Spoj http://spoj.pl/problems/ARRAYSUBSpoj ARRAYSUB: हे (एन) जटिलता दृष्टिकोण
मैं दो दृष्टिकोण
सबसे पहले अनुकूलित जानवर बल का उपयोग कर का उपयोग कर इसे हल पर इस समस्याओं को हल करने की कोशिश कर रहा था। दूसरी बार के, 2k, 3k पर पिवोट लेना और अधिकतम खोजना।
हालांकि दोनों समाधान सबसे खराब मामले में स्वीकार किए जाते हैं, जटिलता ओ (एन * के) होती है;
क्या कोई समस्या के लिए ओ (एन) समाधान दृष्टिकोण सुझा सकता है।
नीचे मेरी रनिंग स्वीकार किया जाता है सबसे ज्यादा मामले जटिलता हे की कोड (एन * ट):
#include<iostream>
#include<cstdio>
#include<climits>
using namespace std;
main()
{
long n;
cin >> n;
long *arr = new long[n];
for(long i=0;i<n;i++)
cin >> arr[i];
long k;
cin >> k;
long max=arr[0];
for(long i=1;i<k;i++)
{
if(arr[i]>max)
max=arr[i];
}
if(k!=n)
cout<<max<<" ";
else cout<<max;
for(long i=k;i<n;i++)
{
if(arr[i-k]==max)
{max=-1;
for(int j=i-k+1;j<=i;j++)
if(arr[j]>max)
max=arr[j];
if(i!=n)
cout<<max<<" ";
else cout<<max;
}
else{
if(arr[i]>max)
{ max=arr[i];
if(i!=n)
cout<<max<<" ";
else
cout<<max;
}
else
{
if(i!=n)
cout<<max<<" ";
else cout<<max;}
}
}
cout<<endl;
return(0);
}
@ sajalijain4 कृपया एल्गोरिदम को और स्पष्ट रूप से समझाएं ?? मुझे आपके से कोडर प्राप्त करने का मतलब नहीं है .. मेरा मोटो दृष्टिकोण जानना था .. कृपया इसे विस्तार से समझाएं। अग्रिम धन्यवाद –
मैंने एक स्पष्टीकरण जोड़ा है। कृपया मुझे बताएं कि क्या यह समझ में आता है –
क्या यह आलेख भी आपका काम है? कोड लगभग समान है। http://articles.leetcode.com/sliding-window-maximum/ – Alan