| 1 | Sort array | - | - | - | [] | [-2, -1, 0, 0, 1, 2] |
| 2 | Fix i | i=0 | - | - | [] | [-2, -1, 0, 0, 1, 2] |
| 3 | Fix j | i=0, j=1 | - | - | [] | [-2, -1, 0, 0, 1, 2] |
| 4 | Set pointers | i=0, j=1, left=2, right=5 | - | - | [] | [-2, -1, 0, 0, 1, 2] |
| 5 | Calculate sum | 0,1,2,5 | -2 + -1 + 0 + 2 = -1 | Sum < target, move left++ | [] | [-2, -1, 0, 0, 1, 2] |
| 6 | Calculate sum | 0,1,3,5 | -2 + -1 + 0 + 2 = -1 | Sum < target, move left++ | [] | [-2, -1, 0, 0, 1, 2] |
| 7 | Calculate sum | 0,1,4,5 | -2 + -1 + 1 + 2 = 0 | Sum == target, add quadruplet [-2,-1,1,2], move left++, right-- | [[-2,-1,1,2]] | [-2, -1, 0, 0, 1, 2] |
| 8 | Move pointers | 0,1,5,4 | left > right, end inner loop | - | [[-2,-1,1,2]] | [-2, -1, 0, 0, 1, 2] |
| 9 | Fix j | i=0, j=2 | - | - | [[-2,-1,1,2]] | [-2, -1, 0, 0, 1, 2] |
| 10 | Set pointers | 0,2,3,5 | - | - | [[-2,-1,1,2]] | [-2, -1, 0, 0, 1, 2] |
| 11 | Calculate sum | 0,2,3,5 | -2 + 0 + 0 + 2 = 0 | Sum == target, add quadruplet [-2,0,0,2], move left++, right-- | [[-2,-1,1,2],[-2,0,0,2]] | [-2, -1, 0, 0, 1, 2] |
| 12 | Move pointers | 0,2,4,4 | left == right, end inner loop | - | [[-2,-1,1,2],[-2,0,0,2]] | [-2, -1, 0, 0, 1, 2] |
| 13 | Fix j | i=0, j=3 | Skip duplicate j (nums[3] == nums[2]) | - | [[-2,-1,1,2],[-2,0,0,2]] | [-2, -1, 0, 0, 1, 2] |
| 14 | Fix i | i=1 | - | - | [[-2,-1,1,2],[-2,0,0,2]] | [-2, -1, 0, 0, 1, 2] |
| 15 | Fix j | i=1, j=2 | - | - | [[-2,-1,1,2],[-2,0,0,2]] | [-2, -1, 0, 0, 1, 2] |
| 16 | Set pointers | 1,2,3,5 | - | - | [[-2,-1,1,2],[-2,0,0,2]] | [-2, -1, 0, 0, 1, 2] |
| 17 | Calculate sum | 1,2,3,5 | -1 + 0 + 0 + 2 = 1 | Sum > target, move right-- | [[-2,-1,1,2],[-2,0,0,2]] | [-2, -1, 0, 0, 1, 2] |
| 18 | Calculate sum | 1,2,3,4 | -1 + 0 + 0 + 1 = 0 | Sum == target, add quadruplet [-1,0,0,1], move left++, right-- | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | [-2, -1, 0, 0, 1, 2] |
| 19 | Move pointers | 1,2,4,3 | left > right, end inner loop | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | [-2, -1, 0, 0, 1, 2] |
| 20 | Fix j | i=1, j=3 | Skip duplicate j (nums[3] == nums[2]) | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | [-2, -1, 0, 0, 1, 2] |
| 21 | Fix i | i=2 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | [-2, -1, 0, 0, 1, 2] |
| 22 | Fix j | i=2, j=3 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | [-2, -1, 0, 0, 1, 2] |
| 23 | Set pointers | 2,3,4,5 | - | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | [-2, -1, 0, 0, 1, 2] |
| 24 | Calculate sum | 2,3,4,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] |
| 25 | Calculate sum | 2,3,4,4 | left == right, end inner loop | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | [-2, -1, 0, 0, 1, 2] |
| 26 | Fix j | i=2, j=4 | j > length-2, end j loop | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | [-2, -1, 0, 0, 1, 2] |
| 27 | Fix i | i=3 | i > length-3, end i loop | - | [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] | [-2, -1, 0, 0, 1, 2] |