Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-05-29 18:53:05
1404. Number of Steps to Reduce a Number in Binary Representation to One
有一个二进制的整数以字串形式表示
可以做以下2种处理
1.如果现在的数字是偶数那除以2
2.如果现在的数字是奇数那+1
请问要做几次操作才可以把这个数字变成1?
思路:
用一个变量acc纪录有没有进位
用cur纪录第1个bit加上acc,会有3种情况0、1、2
如果是2的话acc=1、cur=0
如果是1的话acc=1、cur=1
如果是0的话acc=0、cur=0
当cur=1需要2个步骤:(1)加上1(2)除以2
当cur=0需要1个步骤:(1)除以2
就这样一直处理到剩最后一个bit
此时如果acc=1,那再加上1个步骤
C code :
int numSteps(char* s) {
int l=strlen(s),ans=0,acc=0;
if (l==1){
return 0;
}
l
作者: Smallsh (Smallsh)   2023-05-29 18:53:00
大师
作者: DJYOSHITAKA (Evans)   2024-05-29 18:56:00
别卷了
作者: orangeNoob (橘子色的肥肥)   2024-05-29 19:02:00
别卷了
作者: sustainer123 (caster)   2024-05-29 19:03:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com