| 1 | Sort array | - | - | - | [] | [1, 0, -1, 0, -2, 2] → [-2, -1, 0, 0, 1, 2] |
| 2 | Fix i=0 | i=0 | - | - | [] | i=0 → nums[i]=-2 |
| 3 | Fix j=1 | i=0, j=1 | - | - | [] | j=1 → nums[j]=-1 |
| 4 | Set left=2, right=5 | i=0, j=1, left=2, right=5 | - | - | [] | left=2 → 0, right=5 → 2 |
| 5 | Calculate sum | i=0, j=1, left=2, right=5 | -2 + -1 + 0 + 2 = -1 | sum < target(0) | [] | No quadruplet, move left++ |
| 6 | Move left | i=0, j=1, left=3, right=5 | - | - | [] | left=3 → 0 |
| 7 | Calculate sum | i=0, j=1, left=3, right=5 | -2 + -1 + 0 + 2 = -1 | sum < target(0) | [] | No quadruplet, move left++ |
| 8 | Move left | i=0, j=1, left=4, right=5 | - | - | [] | left=4 → 1 |
| 9 | Calculate sum | i=0, j=1, left=4, right=5 | -2 + -1 + 1 + 2 = 0 | sum == target | [[-2,-1,1,2]] | Add quadruplet, skip duplicates, left++, right-- |
| 10 | Skip duplicates left | i=0, j=1, left=5, right=4 | - | - | [[-2,-1,1,2]] | left=5, right=4 → left >= right, exit while |
| 11 | Increment j | i=0, j=2 | - | - | [[-2,-1,1,2]] | j=2 → nums[j]=0 |
| 12 | Set left=3, right=5 | i=0, j=2, left=3, right=5 | - | - | [[-2,-1,1,2]] | left=3 → 0, right=5 → 2 |
| 13 | Calculate sum | i=0, j=2, left=3, right=5 | -2 + 0 + 0 + 2 = 0 | sum == target | [[-2,-1,1,2],[-2,0,0,2]] | Add quadruplet, skip duplicates, left++, right-- |
| 14 | Skip duplicates left | i=0, j=2, left=4, right=4 | - | - | [[-2,-1,1,2],[-2,0,0,2]] | left=4, right=4 → left >= right, exit while |
| 15 | Increment j | i=0, j=3 | - | - | [[-2,-1,1,2],[-2,0,0,2]] | j=3 → nums[j]=0 (duplicate j skip in next iteration) |
| 16 | Increment i | i=1 | - | - | [[-2,-1,1,2],[-2,0,0,2]] | i=1 → nums[i]=-1 |
| 17 | Fix j=2 | i=1, j=2 | - | - | [[-2,-1,1,2],[-2,0,0,2]] | j=2 → nums[j]=0 |
| 18 | Set left=3, right=5 | i=1, j=2, left=3, right=5 | - | - | [[-2,-1,1,2],[-2,0,0,2]] | left=3 → 0, right=5 → 2 |
| 19 | Calculate sum | i=1, j=2, left=3, right=5 | -1 + 0 + 0 + 2 = 1 | sum > target(0) | [[-2,-1,1,2],[-2,0,0,2]] | sum > target, move right-- |
| 20 | Move right | i=1, j=2, left=3, right=4 | - | - | [[-2,-1,1,2],[-2,0,0,2]] | right=4 → 1 |
| 21 | Calculate sum | i=1, j=2, left=3, right=4 | -1 + 0 + 0 + 1 = 0 | sum == target | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | Add quadruplet, skip duplicates, left++, right-- |
| 22 | Skip duplicates left | i=1, j=2, left=4, right=3 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | left=4, right=3 → left >= right, exit while |
| 23 | Increment j | i=1, j=3 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | j=3 → nums[j]=0 (duplicate j skip in next iteration) |
| 24 | Increment i | i=2 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | i=2 → nums[i]=0 |
| 25 | Fix j=3 | i=2, j=3 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | j=3 → nums[j]=0 |
| 26 | Set left=4, right=5 | i=2, j=3, left=4, right=5 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | left=4 → 1, right=5 → 2 |
| 27 | Calculate sum | i=2, j=3, left=4, right=5 | 0 + 0 + 1 + 2 = 3 | sum > target(0) | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | sum > target, move right-- |
| 28 | Move right | i=2, j=3, left=4, right=4 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | right=4 → 1 |
| 29 | left >= right | i=2, j=3, left=4, right=4 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | left >= right, exit while |
| 30 | End loops | - | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | All quadruplets found, return result |