classSolution {publicintmissingNumber(int[] nums) {int sum =0;for (int i =0; i <nums.length; i++) { sum += nums[i]; }int tsum =0;for (int i =0; i <=nums.length; i++) { tsum += i; }return tsum - sum; }}
Ver.2
利用xor相同数会消掉的原理, 让nums和0~n xor一下, 剩下的即所求.
/* * @lc app=leetcode id=268 lang=cpp * * [268] Missing Number * * https://leetcode.com/problems/missing-number/description/ * * algorithms * Easy (49.10%) * Likes: 1073 * Dislikes: 1465 * Total Accepted: 311.6K * Total Submissions: 634.1K * Testcase Example: '[3,0,1]' * * 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? */classSolution {public:intmissingNumber(vector<int>& nums) {constint N =nums.size();int res =0;for (int i =0; i < N; ++i) { res ^= i; res ^=nums[i]; } res ^= N;return res; }};