এটি একটি সমাধান। উইলার্ড ঝান নির্দেশিত একটি সমাধান এই উত্তরের শেষে যুক্ত করা হয়েছে।O(nlogn)O(n)
O(nlogn) সমাধান
বিশ্বাসের জন্য, ।f(i,j)=(h[j]−h[i])(j−i)
সংজ্ঞা দিন এবং এবং মধ্যে সবচেয়ে ছোট সূচী । একইভাবে, নির্ধারণ করুন এবং এবং মতো বৃহত্তম সূচক । সিক্যুয়েনস এবং সময়ে গণনা করা সহজ ।l1=1lili>li−1h[li]<h[li−1]r1=nriri<ri−1h[ri]>h[ri−1]l1,l2,...r1,r2,…O(n)
এই ক্ষেত্রে যে কোনও যেমন (অর্থাত্ )) তুচ্ছ। আমরা এখন নগণ্য মামলায় মনোনিবেশ করি focus এই ধরনের ক্ষেত্রে, সমাধানটি খুঁজতে, আমাদের কেবল এই জাতীয় জোড়া বিবেচনা করা উচিত।i<jh[i]<h[j]f(i,j)>0
প্রত্যেকের জন্য যেমন যে যাক হবে বৃহত্তম সূচক যেমন যে আর ক্ষুদ্রতম সূচক হতে যেমন যে , তারপর (অন্যথায় of সংজ্ঞা অনুসারে , এইভাবে সংজ্ঞার সাথে ) এবং একইভাবে । অতএব
এর অর্থ আমাদের কেবল জোড়া বিবেচনা করতে হবে যেখানে ।i<jh[i]<h[j]ulu≤ivrv≥jh[lu]≤h[i]lu+1≤ilu+1uh[rv]≥h[j]
(h[rv]−h[lu])(rv−lu)≥(h[j]−h[i])(rv−lu)≥(h[j]−h[i])(j−i).
(lu,rv)lu<rv
বোঝাতে , আমরা নিম্নলিখিত থিম আছে।v(u)=argmaxv: lu<rvf(lu,rv)
এক জোড়া যেখানে , এবং যেখানে অস্তিত্ব আছে যেমন যে এবং বা এই ধরনের যে এবং , একটি চূড়ান্ত সর্বোত্তম সমাধান হতে পারে না।(lu,rv)lu<rvu0u<u0v<v(u0)u>u0v>v(u0)
প্রুফ। এর সংজ্ঞা অনুসারে, আমাদের কাছে
বা
v(u0)
(h[rv(u0)]−h[lu0])(rv(u0)−lu0)≥(h[rv]−h[lu0])(rv−lu0),
(h[rv]−h[rv(u0)])lu0+h[lu0](rv−rv(u0))+h[rv(u0)]rv(u0)−h[rv]rv(u0)≥0.
আপনি যে ক্ষেত্রে এবং , নোট এবং , এবং এছাড়াও এবং , আমাদের
u<u0v<v(u0)h[rv]−h[rv(u0)]<0rv−rv(u0)>0lu<lu0h[lu]>h[lu0]
> (h[rv]−h[rv(u0)])lu+h[lu](rv−rv(u0))(h[rv]−h[rv(u0)])lu0+h[lu0](rv−rv(u0)).
এর অর্থ
বা
(h[rv]−h[rv(u0)])lu+h[lu](rv−rv(u0))+h[rv(u0)]rv(u0)−h[rv]rv(u0)>0,
(h[rv(u0)]−h[lu])(rv(u0)−lu)>(h[rv]−h[lu])(rv−lu).
সুতরাং হ'ল চেয়ে সমাধান । অন্য মামলার প্রমাণও একই রকম। (lu,rv(u0))(lu,rv)■
আমরা প্রথমে গণনা করতে পারি যেখানে সিক্যুয়েন্সের দৈর্ঘ্য , তারপরে এর জন্য মধ্যে সর্বোত্তম সমাধান পুনরাবৃত্তভাবে গণনা করুন এবং , এবং এর জন্য মধ্যে সর্বোত্তম সমাধান এবং । থিম কারণে গ্লোবাল অপটিমাম সমাধান থেকে আসতে হবে ।v(ℓ/2)ℓl1,l2,…o1(lu,rv)u=1,…,ℓ/2−1v=v(ℓ/2),v(ℓ/2)+1,…o2(lu,rv)u=ℓ/2+1,ℓ/2+2,…v=1,…,v(ℓ/2){(lℓ/2,rv(ℓ/2)),o1,o2}
O(n) সমাধান
চলুন যদি । লেমার প্রমাণটিও একটি গুরুত্বপূর্ণ বৈশিষ্ট্য দেখায়: এবং জন্য , যদি , তবে । এর অর্থ ম্যাট্রিক্স সম্পূর্ণ একঘেয়ে ম্যাট্রিক্স যেখানে অনুক্রমের দৈর্ঘ্য (তাই অর্থ শেষ থেকে -th উপাদান), তারপর SMAWK অ্যালগরিদম এর সর্বনিম্ন মান এটি প্রয়োগ করতে পারেন , এর এইভাবে সর্বোচ্চ মান ।f(lu,rv)=−∞lu≥rvu>u0v>v0f(lu0,rv0)≥f(lu0,rv)f(lu,rv0)>f(lu,rv)M[x,y]:=−f(lx,rc−y+1)cr1,r2,…rc−y+1yMf