Missing Number (LeetCode)

Given an array nums containing n distinct numbers in the range [0, n], return the only number in the range that is missing from the array.

Follow up: Could you implement a solution using only O(1) extra space complexity and O(n) runtime complexity?

 

Example 1:

Input: nums = [3,0,1]
Output: 2
Explanation: n = 3 since there are 3 numbers, so all numbers are in the range [0,3]. 2 is the missing number in the range since it does not appear in nums.

Example 2:

Input: nums = [0,1]
Output: 2
Explanation: n = 2 since there are 2 numbers, so all numbers are in the range [0,2]. 2 is the missing number in the range since it does not appear in nums.
Solutions(Java):
1. class Solution {
   public int missingNumber(int[] nums) {
        int i = 0;
        while(i < nums.length) {
            int correct = nums[i];
            if (nums[i] < nums.length &&nums[i] != nums[correct])
                swap(nums, i, correct);
            else 
                i++;
        }
        for (int j = 0; j <nums.length; j++){
            if ( nums[j] != j)
                return j;
        }
        return nums.length;
    }
    void swap(int[] nums, int i, int correct) {
        int temp = nums[i];
        nums[i] = nums[correct];
        nums[correct] = temp;
    }
}
2. class Solution {
public int missingNumber(int[] nums) { int sum = 0; int idealSum = 0; int i = 0; for(i = 0; i < nums.length; i++) { sum = sum + nums[i]; idealSum = idealSum + i; } idealSum = idealSum + i; return idealSum - sum; } }


Comments

Popular posts from this blog

Final Value of Variable After Performing Operations (LeetCode)

Java Output Formatting | Hackerrank

China will fight six wars in the next 50 years!