| 1 | Sort array | - | - | - | - | [-2, -1, 0, 0, 1, 2] |
| 2 | Fix i=0 | i=0 | - | - | - | Start with i at -2 |
| 3 | Fix j=1 | i=0, j=1 | - | - | - | j at -1 |
| 4 | Set left=2, right=5 | i=0, j=1, left=2, right=5 | - | - | - | left=2, right=5 |
| 5 | Calculate sum | i=0, j=1, left=2, right=5 | -2 + -1 + 0 + 2 = -1 | No | No | [] |
| 6 | Sum < target, move left | i=0, j=1, left=3, right=5 | - | - | - | left moves to 3 |
| 7 | Calculate sum | i=0, j=1, left=3, right=5 | -2 + -1 + 0 + 2 = -1 | No | No | [] |
| 8 | Sum < target, move left | i=0, j=1, left=4, right=5 | - | - | - | left moves to 4 |
| 9 | Calculate sum | i=0, j=1, left=4, right=5 | -2 + -1 + 1 + 2 = 0 | Yes | No | [[-2, -1, 1, 2]] |
| 10 | Skip duplicates left/right | i=0, j=1, left=5, right=4 | - | - | left > right, exit while | [[-2, -1, 1, 2]] |
| 11 | Move j to next unique | i=0, j=2 | - | - | - | j at 0 |
| 12 | Set left=3, right=5 | i=0, j=2, left=3, right=5 | - | - | - | left=3, right=5 |
| 13 | Calculate sum | i=0, j=2, left=3, right=5 | -2 + 0 + 0 + 2 = 0 | Yes | Skip left duplicate | [[-2, -1, 1, 2], [-2, 0, 0, 2]] |
| 14 | Skip duplicates left/right | i=0, j=2, left=4, right=4 | - | - | left >= right, exit while | [[-2, -1, 1, 2], [-2, 0, 0, 2]] |
| 15 | Move j to next unique | i=0, j=3 | - | - | Skip j=3 because nums[3] == nums[2] | Skip duplicate j |
| 16 | Move i to next unique | i=1 | - | - | - | i at -1 |
| 17 | Fix j=2 | i=1, j=2 | - | - | - | j at 0 |
| 18 | Set left=3, right=5 | i=1, j=2, left=3, right=5 | - | - | - | left=3, right=5 |
| 19 | Calculate sum | i=1, j=2, left=3, right=5 | -1 + 0 + 0 + 2 = 1 | No | No | [[-2, -1, 1, 2], [-2, 0, 0, 2]] |
| 20 | Sum > target, move right | i=1, j=2, left=3, right=4 | - | - | - | right moves to 4 |
| 21 | Calculate sum | i=1, j=2, left=3, right=4 | -1 + 0 + 0 + 1 = 0 | Yes | No | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] |
| 22 | Skip duplicates left/right | i=1, j=2, left=4, right=3 | - | - | left > right, exit while | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] |
| 23 | Move j to next unique | i=1, j=3 | - | - | Skip j=3 duplicate | Skip duplicate j |
| 24 | Move i to next unique | i=2 | - | - | - | i at 0 |
| 25 | Fix j=3 | i=2, j=3 | - | - | - | j at 0 (index 3) |
| 26 | Set left=4, right=5 | i=2, j=3, left=4, right=5 | - | - | - | left=4, right=5 |
| 27 | Calculate sum | i=2, j=3, left=4, right=5 | 0 + 0 + 1 + 2 = 3 | No | No | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] |
| 28 | Sum > target, move right | i=2, j=3, left=4, right=4 | - | - | - | right moves to 4 |
| 29 | left >= right, exit while | i=2, j=3, left=4, right=4 | - | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] |
| 30 | Move j to next unique | i=2, j=4 | - | - | j out of range, exit j loop | Done with j |
| 31 | Move i to next unique | i=3 | - | - | i out of range, exit i loop | Done with i |
| 32 | Return result | - | - | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] |