Queue
Stack (LIFO)
Deque<> stack = new ArrayDeque<>();FIFO
LinkedList<Integer> fifo = new LinkedList();
Queue<Integer> fifo = new LinkedList();Heap
Priority Queue
Arrays.sort(intervals, (u1,u2) -> u1.start-u2.start);
//may overflow
PriorityQueue<Interval> heap=new PriorityQueue<>(intervals.length,(a,b)->a.end-b.end);
//no overflow
PriorityQueue<Interval> heap=new PriorityQueue<>((a,b)->a.val<b.val?-1:1);
PriorityQueue<Trie> result = new PriorityQueue<>((a, b) -> {
if (a.time != b.time) return b.time - a.time;
return a.word.compareTo(b.word);
});
PriorityQueue<ListNode> queue= new PriorityQueue<ListNode>(lists.size(),new Comparator<ListNode>(){
@Override
public int compare(ListNode o1,ListNode o2){
if (o1.val<o2.val)
return -1;
else if (o1.val==o2.val)
return 0;
else
return 1;
}
});Time Complexity of Priorityqueue
Heap + Map
Reverse linked list within a range
Example
Solution
Last updated