| 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 | < target | [] | [-2, -1, 0, 0, 1, 2] |
| 6 | Move left pointer | 0,1,3,5 | - | - | [] | [-2, -1, 0, 0, 1, 2] |
| 7 | Calculate sum | 0,1,3,5 | -2 + -1 + 0 + 2 = -1 | < target | [] | [-2, -1, 0, 0, 1, 2] |
| 8 | Move left pointer | 0,1,4,5 | - | - | [] | [-2, -1, 0, 0, 1, 2] |
| 9 | Calculate sum | 0,1,4,5 | -2 + -1 + 1 + 2 = 0 | == target | [[-2, -1, 1, 2]] | [-2, -1, 0, 0, 1, 2] |
| 10 | Skip duplicates left/right | 0,1,5,4 | - | - | [[-2, -1, 1, 2]] | [-2, -1, 0, 0, 1, 2] |
| 11 | Move j | i=0, j=2 | - | - | [[-2, -1, 1, 2]] | [-2, -1, 0, 0, 1, 2] |
| 12 | Set pointers | 0,2,3,5 | - | - | [[-2, -1, 1, 2]] | [-2, -1, 0, 0, 1, 2] |
| 13 | Calculate sum | 0,2,3,5 | -2 + 0 + 0 + 2 = 0 | == target | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 14 | Skip duplicates left/right | 0,2,4,4 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 15 | Move j | i=0, j=3 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 16 | Set pointers | 0,3,4,5 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 17 | Calculate sum | 0,3,4,5 | -2 + 0 + 1 + 2 = 1 | > target | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 18 | Move right pointer | 0,3,4,4 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 19 | Move i | i=1 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 20 | Fix j | i=1, j=2 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 21 | Set pointers | 1,2,3,5 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 22 | Calculate sum | 1,2,3,5 | -1 + 0 + 0 + 2 = 1 | > target | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 23 | Move right pointer | 1,2,3,4 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2]] | [-2, -1, 0, 0, 1, 2] |
| 24 | Calculate sum | 1,2,3,4 | -1 + 0 + 0 + 1 = 0 | == target | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 25 | Skip duplicates left/right | 1,2,4,3 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 26 | Move j | 1,3 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 27 | Set pointers | 1,3,4,5 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 28 | Calculate sum | 1,3,4,5 | -1 + 0 + 1 + 2 = 2 | > target | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 29 | Move right pointer | 1,3,4,4 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 30 | Move i | i=2 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 31 | Fix j | 2,3 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 32 | Set pointers | 2,3,4,5 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 33 | Calculate sum | 2,3,4,5 | 0 + 0 + 1 + 2 = 3 | > target | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 34 | Move right pointer | 2,3,4,4 | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | [-2, -1, 0, 0, 1, 2] |
| 35 | End loops | - | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | Final result |
| 36 | Return result | - | - | - | [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]] | Done |