目录
面试题 01.01. 判断字符是否唯一
一、题目描述
二、思路解析
三、代码
268.丢失的数字
一、题目描述
二、思路解析
三、代码
371.两整数之和
一、题目描述
二、思路解析
三、代码
137.只出现一次的数字 II
一、题目描述
二、思路解析
三、代码
面试题 01.01. 判断字符是否唯一
一、题目描述
OJ题目链接:力扣(LeetCode)
二、思路解析
三、代码
class Solution {
public:
bool isUnique(string astr)
{
if (astr.size() > 26) return false;
int Bit_Map = 0;
for (auto e : astr)
{
int i = e - 'a';
if ((Bit_Map >> i) & 1 == 1) return false;//表示该比特位为1
Bit_Map = Bit_Map | (1 << i);
}
return true;
}
};
268.丢失的数字
一、题目描述
OJ题目:链接力扣(LeetCode)
二、思路解析
三、代码
//解法一
class Solution {
public:
int missingNumber(vector<int>& nums)
{
int max = nums.size();
int sum1 = 0;
for (auto e : nums)
{
sum1 += e;
}
int sum2 = 0;
for (int i = 0; i <= max; i++)
sum2 += i;
return sum2 - sum1;
}
};
//解法二
class Solution {
public:
int missingNumber(vector<int>& nums)
{
int n = nums.size();
int ans = 0;
for (auto e : nums) ans ^= e;
for (int i = 0; i <= n; i++) ans ^= i;
return ans;
}
};
371.两整数之和
一、题目描述
OJ题目链接:力扣(LeetCode)
二、思路解析
三、代码
class Solution {
public:
int getSum(int a, int b)
{
while (b != 0)
{
int tmp = a ^ b;
b = (a & b) << 1;
a = tmp;
}
return a;
}
};
137.只出现一次的数字 II
一、题目描述
OJ题目链接:力扣(LeetCode)
二、思路解析
三、代码
class Solution {
public:
int singleNumber(vector<int>& nums)
{
int ret = 0;
for (int i = 0; i < 32; i++)
{
int sum = 0;
for (auto e : nums)
{
if ((e >> i) & 1 == 1) sum ++;
}
if (sum % 3 == 1) ret |= 1 << i;
}
return ret;
}
};