कठिन 0 हल किए गए 0% स्वीकृति

Sliding Window Maximum

Report the maximum of every window of k numbers.

आप क्या सीखेंगे

  • विंडो के उम्मीदवारों का डेक रखना
  • विंडो से बाहर जाने वाले मान हटाना
  • O(n) में हर विंडो का अधिकतम पाना

समस्या

Slide a window of size k across the list one step at a time and report the maximum inside each window. A deque keeps this O(n).

Implement window_maximums(numbers, k).

Input

numbers: The list of integers. k: The window size.

Output

Return the maximum of each window, left to right.

सीमाएँ

1 ≤ k ≤ length ≤ 200,000

उदाहरण

उदाहरण 1
इनपुट:
k = 3
numbers = [1, 3, -1, -3, 5, 3, 6, 7]

अपेक्षित आउटपुट:
expected = [3, 3, 5, 5, 6, 7]
इनपुट:
long long k = 3;
std::vector<long long> numbers = {1, 3, -1, -3, 5, 3, 6, 7};

अपेक्षित आउटपुट:
std::vector<long long> expected = {3, 3, 5, 5, 6, 7};
इनपुट:
long k = 3;
long[] numbers = new long[] {1, 3, -1, -3, 5, 3, 6, 7};

अपेक्षित आउटपुट:
long[] expected = new long[] {3, 3, 5, 5, 6, 7};

व्याख्या

Windows [1,3,-1], [3,-1,-3], [-1,-3,5], … have maxima 3, 3, 5, 5, 6, 7.

उदाहरण 2
इनपुट:
k = 1
numbers = [4, 2]

अपेक्षित आउटपुट:
expected = [4, 2]
इनपुट:
long long k = 1;
std::vector<long long> numbers = {4, 2};

अपेक्षित आउटपुट:
std::vector<long long> expected = {4, 2};
इनपुट:
long k = 1;
long[] numbers = new long[] {4, 2};

अपेक्षित आउटपुट:
long[] expected = new long[] {4, 2};

व्याख्या

Windows of one element are the elements themselves: [4, 2].

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

Maximum window से बाहर निकलते ही गायब हो सकता है, इसलिए आपको value और index दोनों के हिसाब से update होने वाली structure चाहिए.

संकेत 2

Candidate indices को values के decreasing order में रखें, और current window के बाहर की किसी भी चीज़ को drop करें.

संकेत 3

First full window और size one वाले windows का ध्यान रखें; हर answer एक fully formed window का होना चाहिए.

अपेक्षित जटिलता

समय O(n), अतिरिक्त स्थान O(k)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।