MCPcopy Create free account
hub / github.com/ashishps1/awesome-leetcode-resources / TwoPointers

Class TwoPointers

patterns/javascript/twoPointers.js:1–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1class TwoPointers {
2 /**
3 * Move Zeroes using Two Pointers
4 * @param {number[]} nums - Input array
5 */
6 moveZeroesTwoPointers(nums) {
7 let left = 0; // Pointer for placing non-zero elements
8
9 // Iterate with right pointer
10 for (let right = 0; right < nums.length; right++) {
11 if (nums[right] !== 0) {
12 // Swap elements if right pointer finds a non-zero
13 [nums[left], nums[right]] = [nums[right], nums[left]];
14 left++; // Move left pointer forward
15 }
16 }
17 }
18
19 /**
20 * Brute Force approach for Container with Most Water
21 * @param {number[]} height - Array of heights
22 * @return {number} - Maximum water that can be contained
23 */
24 maxAreaBruteForce(height) {
25 let maxArea = 0;
26 let n = height.length;
27
28 // Check all pairs (i, j)
29 for (let i = 0; i < n; i++) {
30 for (let j = i + 1; j < n; j++) {
31 // Compute the minimum height and width
32 let minHeight = Math.min(height[i], height[j]);
33 let width = j - i;
34 let area = minHeight * width; // Compute water contained
35
36 maxArea = Math.max(maxArea, area); // Update max water
37 }
38 }
39 return maxArea;
40 }
41
42 /**
43 * Two Pointers approach for Container with Most Water
44 * @param {number[]} height - Array of heights
45 * @return {number} - Maximum water that can be contained
46 */
47 maxAreaTwoPointers(height) {
48 let left = 0, right = height.length - 1;
49 let maxArea = 0;
50
51 // Move pointers toward each other
52 while (left < right) {
53 let width = right - left; // Distance between lines
54 let minHeight = Math.min(height[left], height[right]); // Compute height
55 let area = minHeight * width; // Compute water contained
56
57 maxArea = Math.max(maxArea, area); // Update max water
58
59 // Move the pointer pointing to the shorter height
60 if (height[left] < height[right]) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected