Advertisement
exmkg

3-4

Jan 14th, 2025
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.25 KB | None | 0 0
  1. class Solution {
  2.     public int removeDuplicates(int[] nums) {
  3.         // Numbers nums[0] and nums[1] will stay where they are.
  4.         int insertPosition = 2;
  5.  
  6.         // We will iterate over numbers starting from i = 2,
  7.         // and numbers that we need at insertPosition one-by-one.
  8.         for (int i = 2; i < nums.length; i++) {
  9.             if (nums[i] != nums[insertPosition - 2]) {
  10.                 nums[insertPosition++] = nums[i];
  11.             }
  12.         }
  13.         return insertPosition;
  14.  
  15.         //                           0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  16.         //                   nums = [1, 1, 1, 1, 1, 2, 2, 2, 2, 2,  3,  3,  3].
  17.         // insertPosition = 2              ^
  18.         //              i = 2              ^
  19.         // nums[i] == nums[insertPosition - 2], so skip this 1 as it was included twice.
  20.  
  21.         //                           0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  22.         //                   nums = [1, 1, 1, 1, 1, 2, 2, 2, 2, 2,  3,  3,  3].
  23.         // insertPosition = 2              ^
  24.         //              i = 3                 ^
  25.         // nums[i] == nums[insertPosition - 2], so skip this 1 as it was included twice.
  26.  
  27.         //                           0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  28.         //                   nums = [1, 1, 1, 1, 1, 2, 2, 2, 2, 2,  3,  3,  3].
  29.         // insertPosition = 2              ^
  30.         //              i = 4                    ^
  31.         // nums[i] == nums[insertPosition - 2], so skip this 1 as it was included twice.
  32.  
  33.         //                           0, 1,  2,  3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  34.         //                   nums = [1, 1, *2*, 1, 1, 2, 2, 2, 2, 2,  3,  3,  3].
  35.         // insertPosition = 2               ^
  36.         //              i = 5                         ^
  37.         // nums[i] != nums[insertPosition - 2], so put 2 at insertPosition = 2
  38.         // and increment insertPosition by 1.
  39.  
  40.         //                           0, 1, 2,  3,  4, 5, 6, 7, 8, 9, 10, 11, 12
  41.         //                   nums = [1, 1, 2, *2*, 1, 2, 2, 2, 2, 2,  3,  3,  3].
  42.         // insertPosition = 3                  ^
  43.         //              i = 6                            ^
  44.         // nums[i] != nums[insertPosition - 2], so put 2 at insertPosition = 3
  45.         // and increment insertPosition by 1.
  46.  
  47.         //                           0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  48.         //                   nums = [1, 1, 2, 2, 1, 2, 2, 2, 2, 2,  3,  3,  3].
  49.         // insertPosition = 4                    ^
  50.         //              i = 7                             ^
  51.         // nums[i] != nums[insertPosition - 2], so skip this 2 as it was included twice.
  52.  
  53.         //                           0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  54.         //                   nums = [1, 1, 2, 2, 1, 2, 2, 2, 2, 2,  3,  3,  3].
  55.         // insertPosition = 4                    ^
  56.         //              i = 8                                ^
  57.         // nums[i] != nums[insertPosition - 2], so skip this 2 as it was included twice.
  58.  
  59.         //                           0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  60.         //                   nums = [1, 1, 2, 2, 1, 2, 2, 2, 2, 2,  3,  3,  3].
  61.         // insertPosition = 4                    ^
  62.         //              i = 8                                ^
  63.         // nums[i] != nums[insertPosition - 2], so skip this 2 as it was included twice.
  64.  
  65.         //                           0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  66.         //                   nums = [1, 1, 2, 2, 1, 2, 2, 2, 2, 2,  3,  3,  3].
  67.         // insertPosition = 4                    ^
  68.         //              i = 9                                   ^
  69.         // nums[i] != nums[insertPosition - 2], so skip this 2 as it was included twice.
  70.  
  71.         //                           0, 1, 2, 3,  4,  5, 6, 7, 8, 9, 10, 11, 12
  72.         //                   nums = [1, 1, 2, 2, *3*, 2, 2, 2, 2, 2,  3,  3,  3].
  73.         // insertPosition =  4                    ^
  74.         //              i = 10                                        ^
  75.         // nums[i] != nums[insertPosition - 2], so put 3 at insertPosition = 4
  76.         // and increment insertPosition by 1.
  77.  
  78.         //                           0, 1, 2, 3, 4,  5,  6, 7, 8, 9, 10, 11, 12
  79.         //                   nums = [1, 1, 2, 2, 3, *3*, 2, 2, 2, 2,  3,  3,  3].
  80.         // insertPosition =  5                       ^
  81.         //              i = 11                                            ^
  82.         // nums[i] != nums[insertPosition - 2], so put 3 at insertPosition = 5
  83.         // and increment insertPosition by 1.
  84.  
  85.         //                           0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  86.         //                   nums = [1, 1, 2, 2, 3, 3, 2, 2, 2, 2,  3,  3,  3].
  87.         // insertPosition =  6                         ^
  88.         //              i = 12                                              ^
  89.         // nums[i] != nums[insertPosition - 2], so skip this 3 as it was included twice.
  90.  
  91.         // Return insertPosition = 6, as six values at indices 0..5 are the answer.
  92.         // All values after position 6 shall be ignored like this:
  93.         //                           0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  94.         //                   nums = [1, 1, 2, 2, 3, 3, _, _, _, _,  _,  _,  _].
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement