Dada una matriz que contiene n números distintos tomados de 0, 1, 2, …, n, encuentre el que falta en la matriz. Por ejemplo, dado nums = [0, 1, 3] volver 2.
Solución 1 de Java – Matemáticas
public int missingNumber(int[] nums) { int sum=0; for(int i=0; i<nums.length; i++){ sum+=nums[i]; } int n=nums.length; return n*(n+1)/2-sum; } |
Solución Java 2 – Bit
public int missingNumber(int[] nums) { int miss=0; for(int i=0; i<nums.length; i++){ miss ^= (i+1) ^nums[i]; } return miss; } |
Solución Java 3 – Búsqueda binaria
public int missingNumber(int[] nums) { Arrays.sort(nums); int l=0, r=nums.length; while(l<r){ int m = (l+r)/2; if(nums[m]>m){ r=m; }else{ l=m+1; } } return r; } |