Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Nodes{
- int pos;
- int val;
- public boolean equals(Object obj){
- Nodes node = (Nodes)obj;
- return this.pos == node.pos && this.val == node.val;
- }
- public Nodes(int pos, int val){
- this.pos = pos;
- this.val =val;
- }
- }
- class Solution {
- public static int[] maxSlidingWindow(int[] nums, int k) {
- if (k<=1)
- return nums;
- int outpos[] = new int[nums.length -k+1];
- int i=0;
- PriorityQueue<Nodes> queue = new PriorityQueue<Nodes>(new Comparator<Nodes>(){
- public int compare(Nodes n1, Nodes n2) {
- return n2.val- n1.val;
- }
- });
- while(i<k){
- Nodes node = new Nodes(i, nums[i]);
- queue.add(node);
- i++;
- }
- for (i= 0; i< outpos.length; i++){
- Nodes top = queue.peek();
- if(top !=null)
- outpos[i] = top.val;
- queue.remove(new Nodes(i,nums[i]));
- if (i+k < nums.length)
- queue.add(new Nodes(i+k,nums[i+k]));
- }
- return outpos;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement