Deque-STL

  • + 0 comments

    I didn't know if using deque was mandatory, so I went oldschool with some optimizations to avoid a full n² complexity:

    void printKMax(int arr[], int n, int k){
    	//Write your code here.
        int max = 0;
        int pos = 0;
        
        for (int i = 0; i < k; i++) {
            if (arr[i] > max) {
                pos = i;
                max = arr[pos];
            }
        }
        
        cout << max;
                    
        for (int j = k; j < n; j++) {
            if (j - k < pos) {
                if (arr[j] > max) {
                    max = arr[j];
                    pos = j;
                }
            } else {
                max = 0;
                for (int i = 1; i <= k; i++) {
                    if (arr[j - k + i] > max) {
                        pos = j - k + i;
                        max = arr[pos];
                    }
                }
            }
    
            cout << " " << max;
        }
        
        cout << endl;
    }