Leet Code OJ 268. Missing Number [Difficulty: Medium]
題目:
Given an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is missing from the array.
For example,
Given nums = [0, 1, 3] return 2.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
翻譯:
給定一個數(shù)組,包含n個不同的數(shù),從0, 1, 2, …, n里面取出,找到那個缺失的數(shù)。
提示:你的程序應(yīng)該運行在一個線性的時間復(fù)雜度上。你可以實現(xiàn)它僅僅使用常量的額外空間復(fù)雜度嗎?
分析:
按照題意,數(shù)組只缺失了一個數(shù),來構(gòu)成數(shù)列0, 1, 2, …, n,由于數(shù)組可能是亂序的,如果按照傳統(tǒng)方法遍歷,將需要先做排序(增加時間復(fù)雜度),或者使用額外空間來記錄(增加空間復(fù)雜度)。
由于只缺少了一個數(shù),我們可以把未缺失的原數(shù)列的和計算出來,與數(shù)組的和對比,差值即缺失的數(shù)。
代碼:
public class Solution {public int missingNumber(int[] nums) {int sum=0;for(int i=0;i<nums.length;i++){sum+=nums[i];}int rightSum=(nums.length+1)*(nums.length)/2;return rightSum-sum;} }總結(jié)
以上是生活随笔為你收集整理的Leet Code OJ 268. Missing Number [Difficulty: Medium]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leet Code OJ 66. Plu
- 下一篇: Leet Code OJ 328. Od