268、缺失数字

mac2024-05-07  39

给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?

class Solution { public: static bool cmp(const int&a, const int&b) { return a < b; } int missingNumber(vector<int>& nums) { // 排序 sort(nums.begin(), nums.end(), cmp); for (int i = 0; i < nums.size(); i++) { if (nums[i] != i) return i; } return nums.size(); } }; class Solution1 { public: int missingNumber(vector<int>& nums) { // 异或 int res = nums.size(); for (int i = 0; i < nums.size(); i++) { res ^= nums[i]; res ^= i; } return res; } };

链接:https://leetcode-cn.com/problems/missing-number

最新回复(0)