Ads
const numberOfSteps = function(num) {
let totalStep = 0
const runStep = (num) => {
if(num === 0) return
totalStep = totalStep + 1
const isEven = num % 2 === 0
return runStep(isEven ? num / 2 : num -1)
}
runStep(num)
return totalStep
};
Ads
const step = (num) => {
let bits = 0;
while (num > 0) {
bits += num & 1 + 1;
num == num >> 1;
bits += 1;
}
return bits - 1;
}
class Solution {
public:
int numberOfSteps(int num) {
int step=0;
while(num!=0)
{
if(num%2==0)
num/=2;
else
num-=1;
step+=1;
}
return step;
}
};
const numberOfSteps = function(num, totalSteps = 0) {
if(num === 0) return totalSteps
totalSteps = totalSteps + 1
return numberOfSteps(num % 2 === 0 ? num / 2 : num -1, totalSteps)
};
Ads
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
Input: nums = [3,2,4], target = 6
Output: [1,2]
Input: nums = [3,3], target = 6
Output: [0,1]
- 2 <= nums.length <= 104
- -109 <= nums[i] <= 109
- -109 <= target <= 109
- Only one valid answer exists.
const twoSum = (nums, target, numMap={}, step=0)=> {
if (target-nums[step] in numMap) {
return [numMap[target-nums[step]], step]
}
numMap[nums[step]] = step
return twoSum(nums, target, numMap, step+1)
};