题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
map<int,int> memo;
vector<int> res(2,-1);
for (int i=0; i < nums.size(); ++i){
if(memo.find(target-nums[i]) != memo.end()){
res[0] = i;
res[1] = memo[target-nums[i]];
return res;
}
else{
memo[nums[i]] = i;
}
}
return res;
}
};
class Solution {
public:
int add(int a, int b) {
int tmpsum,carrysum,sum;
while(b != 0){
tmpsum = a^b;
carrysum = (unsigned int)(a&b)<<1;
a = tmpsum;
b = carrysum;
}
return a;
}
};
class Solution {
public:
int add(int a, int b) {
int tmpsum,carrysum,sum;
while(b != 0){
tmpsum = a^b;
carrysum = (unsigned int)(a&b)<<1;
a = tmpsum;
b = carrysum;
}
return a;
}
};
class Solution {
public:
int multiply(int A, int B) {
int num=0;
return (A > B)? mult(B, A, num):mult(A, B, num);
}
int mult(int n, int data, int &num)
{
if(n == 0) return 0;
for (int i=0;n!=0; i++)
{
if (n&1)
{
num += data<<i;
}
n=n>>1;
}
return num;
}
};