This section covers advanced difficulty queue problems from LeetCode, implemented using modern ES6+ JavaScript features.
- Number of Visible People in a Queue
- Shortest Subarray with Sum at Least K
- Find the Most Competitive Subsequence
Each problem is solved using multiple approaches showcasing different JavaScript features and patterns:
- Approach 1: Stack-based Solution (Optimal)
- Approach 2: Brute Force Solution
- Approach 3: Monotonic Stack Solution with Detailed Tracking
- Approach 4: Functional Programming Solution
- Approach 5: Recursive Solution with Memoization
- Approach 6: Generator-based Solution with Step-by-Step Visualization
- Approach 1: Deque-based Solution (Optimal)
- Approach 2: Brute Force Solution
- Approach 3: Sliding Window with Prefix Sums
- Approach 4: Functional Programming Solution
- Approach 5: Priority Queue Solution
- Approach 6: Generator-based Solution with Step-by-Step Visualization
- Approach 1: Stack-based Solution (Optimal)
- Approach 2: Brute Force Solution
- Approach 3: Monotonic Stack Solution with Detailed Tracking
- Approach 4: Functional Programming Solution
- Approach 5: Recursive Solution with Memoization
- Approach 6: Generator-based Solution with Step-by-Step Visualization
- ES6+ syntax (arrow functions, destructuring, spread operator)
- Modern data structures (Map, Set)
- Functional programming patterns
- Factory functions
- Custom iterators with Symbol.iterator
- Generator functions for step-by-step visualization
- Performance testing utilities
- Comprehensive documentation with time/space complexity analysis
Each implementation file can be run independently to see the implementation in action:
node answer1.js
node answer2.js
node answer3.jsAll implementations include performance testing utilities to compare different approaches:
// Performance comparison utility
const performanceTest = (func, name, nums, k) => {
const start = performance.now();
func([...nums], k);
const end = performance.now();
console.log(`${name}: ${end - start}ms for array of size ${nums.length} with k=${k}`);
};Problems from LeetCode Very Hard: