leetcode 448. 找到所有数组中消失的数字(Java版)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 448. 找到所有数组中消失的数字(Java版)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/
思路
維護一個 bool 數組,用來記錄哪些數字出現過。最后遍歷這個 bool 數組,將沒有出現過的數字 append 進用于返回的 list 中。
代碼
import java.util.ArrayList; import java.util.List;public class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {List<Integer> result = new ArrayList<>();boolean[] hasNums = new boolean[nums.length + 1];for (int n : nums) {hasNums[n] = true;}for (int i = 1; i < nums.length + 1; i++) {if (!hasNums[i]) result.add(i);}return result;} }其他解法
不使用額外空間的方法:
復雜度分析
時間復雜度:O(n)。其中 n 是數組 nums 的長度。
空間復雜度:O(1)。返回值不計入空間復雜度。
總結
以上是生活随笔為你收集整理的leetcode 448. 找到所有数组中消失的数字(Java版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 441. 排列硬币(J
- 下一篇: leetcode 455. 分发饼干(J