沈阳做网站哪好,网站建设后续说明,大连做网站公司,企业管理培训班目录
力扣面试题 17.19. 消失的两个数字
解析代码 力扣面试题 17.19. 消失的两个数字
面试题 17.19. 消失的两个数字 难度 困难
给定一个数组#xff0c;包含从 1 到 N 所有的整数#xff0c;但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗#xff…目录
力扣面试题 17.19. 消失的两个数字
解析代码 力扣面试题 17.19. 消失的两个数字
面试题 17.19. 消失的两个数字 难度 困难
给定一个数组包含从 1 到 N 所有的整数但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗
以任意顺序返回这两个数字均可。
示例 1:
输入: [1]
输出: [2,3]
示例 2:
输入: [2,3]
输出: [1,4]
提示
nums.length 30000
class Solution {
public:vectorint missingTwo(vectorint nums) {}
}; 解析代码 困难题但之前写过找一个单身狗和找两个单身狗的了转化成找两个单身狗力扣260再转化成找一个单身狗力扣136力扣268 异或(^)运算的运算律解决只出现一次的数字单身狗问题 a ^ 0 a a ^ a 0 a ^ b ^ c a ^ ( b ^ c) class Solution {
public:vectorint missingTwo(vectorint nums) {int sum 0, n nums.size();for(int i 1; i n 2; i){nums.push_back(i); // 转换成找两个单身狗-力扣260}n nums.size();for (int i 0; i n; i){sum ^ nums[i];}int count 0;for (int i 0; i 32; i){if (sum 1 i) //循环判断第几位是1{count i;//如果是1 记录下来break;}}int a 0, b 0;for (int i 0; i n; i){if (nums[i] 1 count)a ^ nums[i];elseb ^ nums[i];}return {a, b};}
};