zoukankan      html  css  js  c++  java
  • LeetCode 268. Missing Number

    question:

    question:

    Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.

    Example 1

    Input: [3,0,1]
    Output: 2
    

    Example 2

    Input: [9,6,4,2,3,5,7,0,1]
    Output: 8
    

    Note:
    Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?

    first try:

    class Solution {
        public int missingNumber(int[] nums) {
            int[] slot = new int[nums.length+1];
            
            for(int i=0; i<nums.length; i++) {
                slot[nums[i]] = 1;
            }
            
            for(int i=0; i<slot.length; i++) {
                if(slot[i] == 0) {
                    return i;
                }
            }
            
            return -1;
        }
    }

    result:

    second try:

    class Solution {
        public int missingNumber(int[] nums) {
            int sum = 0, sum2 = 0;
            
            for(int i=0; i<nums.length; i++) {
                sum += nums[i];
            }
            
            for(int i=0; i<=nums.length; i++) {
                sum2 += i;
            }
            
            return sum2-sum;
        }
    }

    result:

    conclusion:

    数据集合的特点,使得常量空间复杂度成为可能。

  • 相关阅读:
    顺时针
    true
    td
    确定删除
    on("submit",)
    float:right
    css中:hover空格
    磁盘恢复
    一、报表
    二、实践与视频解决方案
  • 原文地址:https://www.cnblogs.com/hzg1981/p/8886452.html
Copyright © 2011-2022 走看看