本文主要記錄一下leetcode之丟失的數字算法
給定一個包含 [0, n] 中 n 個數的數組 nums ,找出 [0, n] 這個範圍內沒有出如今數組中的那個數。 進階: 你可否實現線性時間複雜度、僅使用額外常數空間的算法解決此問題? 示例 1: 輸入:nums = [3,0,1] 輸出:2 解釋:n = 3,由於有 3 個數字,因此全部的數字都在範圍 [0,3] 內。2 是丟失的數字,由於它沒有出如今 nums 中。 示例 2: 輸入:nums = [0,1] 輸出:2 解釋:n = 2,由於有 2 個數字,因此全部的數字都在範圍 [0,2] 內。2 是丟失的數字,由於它沒有出如今 nums 中。 示例 3: 輸入:nums = [9,6,4,2,3,5,7,0,1] 輸出:8 解釋:n = 9,由於有 9 個數字,因此全部的數字都在範圍 [0,9] 內。8 是丟失的數字,由於它沒有出如今 nums 中。 示例 4: 輸入:nums = [0] 輸出:1 解釋:n = 1,由於有 1 個數字,因此全部的數字都在範圍 [0,1] 內。1 是丟失的數字,由於它沒有出如今 nums 中。 提示: n == nums.length 1 <= n <= 104 0 <= nums[i] <= n nums 中的全部數字都 獨一無二 來源:力扣(LeetCode) 連接:https://leetcode-cn.com/problems/missing-number 著做權歸領釦網絡全部。商業轉載請聯繫官方受權,非商業轉載請註明出處。
class Solution { public int missingNumber(int[] nums) { int result = nums.length; for (int i = 0; i < nums.length; ++i){ result ^= nums[i]; result ^= i; } return result; } }
這裏利用nums中的全部數字都獨一無二
這個條件,使用異或運算來對數組index及值進行運算,遍歷完得出的結果就是丟失的數字。數組