Advertisement
Guest User

Untitled

a guest
Dec 18th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. class Nodes{
  2. int pos;
  3. int val;
  4.  
  5. public boolean equals(Object obj){
  6. Nodes node = (Nodes)obj;
  7. return this.pos == node.pos && this.val == node.val;
  8. }
  9.  
  10. public Nodes(int pos, int val){
  11. this.pos = pos;
  12. this.val =val;
  13. }
  14.  
  15. }
  16.  
  17. class Solution {
  18. public static int[] maxSlidingWindow(int[] nums, int k) {
  19.  
  20. if (k<=1)
  21. return nums;
  22.  
  23. int outpos[] = new int[nums.length -k+1];
  24.  
  25. int i=0;
  26.  
  27. PriorityQueue<Nodes> queue = new PriorityQueue<Nodes>(new Comparator<Nodes>(){
  28.  
  29. public int compare(Nodes n1, Nodes n2) {
  30. return n2.val- n1.val;
  31. }
  32.  
  33. });
  34.  
  35. while(i<k){
  36. Nodes node = new Nodes(i, nums[i]);
  37. queue.add(node);
  38. i++;
  39. }
  40.  
  41. for (i= 0; i< outpos.length; i++){
  42. Nodes top = queue.peek();
  43. if(top !=null)
  44. outpos[i] = top.val;
  45.  
  46. queue.remove(new Nodes(i,nums[i]));
  47. if (i+k < nums.length)
  48. queue.add(new Nodes(i+k,nums[i+k]));
  49. }
  50. return outpos;
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement