【记录】今日LeetCode两题

27. 移除元素

//双指针,因为可以不考虑元素顺序所以还可以从两头遍历
int removeElement(int* nums, int numsSize, int val) {
    int p1 = 0, p2 = 0;
    while (p2 < numsSize)
    {
        if (nums[p2] != val)
        {
            nums[p1] = nums[p2];
            p1++;
            p2++;
        }
        else p2++;

    }
    return p1;
}

面试题 08.05. 递归乘法

//1非递归快速乘法
long quickMultiply(int A, int B){//用int爆了
long ans = 0;
long a = (long)A;
long b = (long)B;
for (; b; b >>= 1)
{
	if (b & 1)
		ans += a;
	a <<= 1;
}

return ans;
}
//2递归版
int multiply(int A, int B) {

	if (B == 0)return 0;
	if (B == 1)return A;
	if (B & 1)
		return multiply(A << 1, B >> 1) + A;
	else return multiply(A << 1, B >> 1);
}
//累加递归
int multiply(int A, int B) {
	return B == 0 ? 0 : A + multiply1(A, B - 1);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值