leetcode题型分析《整数》

本文解析了剑指Offer II中的三个算法题,包括整数除法的O(logn)时间复杂度实现方法,二进制加法的逐位相加及进位处理策略,以及求解两个单词长度最大乘积的高效算法。

剑指offer II 1整数除法

思路:如果被除数最多大于除数*2^k倍,那么将被除数减去除数的2^k倍,然后将剩余的被除数重复之前的步骤。每次除数翻倍,时间复杂度为O(log n)。

step 1:如果dividend为整数最大值,被除数为-1返回INT_MAX;

step 2: 定义negative = 2; 负负得正,当negative = 1时,则取相反符号。

step 3: 每次减去被除数最多大于除数*2^k,并累加result。

7716c7b6bd0d4706a0a2d6d7fca9bd0b.jpg

剑指offer II  2 二进制加法

思路:将两个数字右端对齐,然后从他们的个位开始从右向左想加同一位置的两个数,如果有进位还要加上进位。

剑指offer II 5 单词长度的最大乘积

思路:用一个长度为26的布尔型数组来模拟哈希表,判断两个word之间有无相同字符。

5c7ba8b66fcb479db0e6eb3cf798a6a6.jpg

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值