leetcode_268.missing number
2024-09-04 21:40:00
给定一个数组nums,其中包含0--n中的n个数,找到数组中没有出现的那个数。
解法一:cyclic swapping algorithm
class Solution
{
public:
int missingNumber(vector<int>& nums)
{
nums.push_back(-);
int len=nums.size();
for(int i=;i<len;i++)
{
while(nums[i]>= && nums[i]!=i)
swap(nums[i], nums[nums[i]]);
}
for(int i=;i<=len;i++)
if(nums[i]==-)
return i;
return -;
}
};
解法二:用(1+n)*n/2减掉数组中所有数,就是没有出现的那个数。
class Solution
{
public:
int missingNumber(vector<int>& nums)
{
int n=nums.size(), sum = (+n)*n/;
for(int i:nums)
sum -= i;
return sum;
}
};
解法三:使用异或运算符,a^b^b=a。
class Solution
{
public:
int missingNumber(vector<int>& nums)
{
int result = nums.size();
for(int i=;i<nums.size();i++)
result = result^i^nums[i];
return result;
}
};
最新文章
- Tomcat的粗略介绍
- asp.net MVC excel数据导出
- C++设计模式-Proxy代理模式
- web程序员该学习什么
- Linux释放内存空间
- poj3207 2-SAT入门
- HTML5 测验记录
- class&;object
- LIB库加载方法-引用百度百科
- ReentrantLock与synchronized的差别
- crontab演出newLISP脚本设置环境变量
- 一语惊醒梦中人-《Before I Fall》
- UVa 10341 - Solve It【经典二分,单调性求解】
- bzoj [Noi2002]Savage 扩展欧几里得
- node-express-1
- [svc]sort-uniq
- oninput和onpropertychange实时监听输入框值的变化
- PCL的PNG文件和计算点云重心
- AndroidのUI布局之layout weight
- 支付宝支付下载对账单bug反馈整理