| 1 | Sort array | - | - | - | [] | [1, 0, -1, 0, -2, 2] → [-2, -1, 0, 0, 1, 2] |
| 2 | Fix i=0 | i=0 | - | - | [] | [-2, -1, 0, 0, 1, 2] |
| 3 | Fix j=1 | i=0, j=1 | - | - | [] | [-2, -1, 0, 0, 1, 2] |
| 4 | Set left=2, right=5 | i=0, j=1, left=2, right=5 | - | - | [] | [-2, -1, 0, 0, 1, 2] |
| 5 | Calculate sum | i=0, j=1, left=2, right=5 | -2 + -1 + 0 + 2 = -1 | sum < target(0), move left++ | [] | [-2, -1, 0, 0, 1, 2] |
| 6 | left=3, right=5 | i=0, j=1, left=3, right=5 | -2 + -1 + 0 + 2 = -1 | sum < target, move left++ | [] | [-2, -1, 0, 0, 1, 2] |
| 7 | left=4, right=5 | i=0, j=1, left=4, right=5 | -2 + -1 + 1 + 2 = 0 | sum == target, add quadruplet | [[-2, -1, 1, 2]] | [-2, -1, 0, 0, 1, 2] |
| 8 | Skip duplicates left and right | left=5, right=4 | - | left >= right, end inner while | [[-2, -1, 1, 2]] | [-2, -1, 0, 0, 1, 2] |
| 9 | Increment j=2 | i=0, j=2 | - | - | [[-2, -1, 1, 2]] | [-2, -1, 0, 0, 1, 2] |
| 10 | Set left=3, right=5 | i=0, j=2, left=3, right=5 | - | - | [[-2, -1, 1, 2]] | [-2, -1, 0, 0, 1, 2] |
| 11 | Calculate sum | i=0, j=2, left=3, right=5 | -2 + 0 + 0 + 2 = 0 | sum == target, add quadruplet | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 12 | Skip duplicates left and right | left=4, right=4 | - | left >= right, end inner while | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 13 | Increment j=3 | i=0, j=3 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 14 | left=4, right=5 | i=0, j=3, left=4, right=5 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 15 | Calculate sum | i=0, j=3, left=4, right=5 | -2 + 0 + 1 + 2 = 1 | sum > target, move right-- | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 16 | left=4, right=4 | left >= right | - | end inner while | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 17 | Increment i=1 | i=1 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 18 | Fix j=2 | i=1, j=2 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 19 | left=3, right=5 | i=1, j=2, left=3, right=5 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 20 | Calculate sum | i=1, j=2, left=3, right=5 | -1 + 0 + 0 + 2 = 1 | sum > target, move right-- | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 21 | left=3, right=4 | i=1, j=2, left=3, right=4 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 22 | Calculate sum | i=1, j=2, left=3, right=4 | -1 + 0 + 0 + 1 = 0 | sum == target, add quadruplet | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 23 | Skip duplicates left and right | left=4, right=3 | - | left >= right, end inner while | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 24 | Increment j=3 | i=1, j=3 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 25 | left=4, right=5 | i=1, j=3, left=4, right=5 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 26 | Calculate sum | i=1, j=3, left=4, right=5 | -1 + 0 + 1 + 2 = 2 | sum > target, move right-- | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 27 | left=4, right=4 | left >= right | - | end inner while | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 28 | Increment i=2 | i=2 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 29 | Fix j=3 | i=2, j=3 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 30 | left=4, right=5 | i=2, j=3, left=4, right=5 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 31 | Calculate sum | i=2, j=3, left=4, right=5 | 0 + 0 + 1 + 2 = 3 | sum > target, move right-- | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 32 | left=4, right=4 | left >= right | - | end inner while | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 33 | i=3, loop ends | i=3 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |