3954. Sum of Compatible Numbers in Range I
Description
You are given two integers n and k.
A positive integer x is called compatible if it satisfies both of the following conditions:
abs(n - x) <= k(n & x) == 0
Return the sum of all compatible integers x.
Note:
- Here,
&denotes the bitwise AND operator. - The absolute difference between integers
iandjis defined asabs(i - j).
Example 1:
Input: n = 2, k = 3
Output: 10
Explanation:
The compatible integers are:
x = 1, sinceabs(2 - 1) = 1and2 & 1 = 0.x = 4, sinceabs(2 - 4) = 2and2 & 4 = 0.x = 5, sinceabs(2 - 5) = 3and2 & 5 = 0.
Thus, the answer is 1 + 4 + 5 = 10.
Example 2:
Input: n = 5, k = 1
Output: 0
Explanation:
There are no compatible integers in the range [4, 6]. Thus, the answer is 0.
Constraints:
1 <= n <= 1001 <= k <= 100
Solutions
Solution 1: Simulation
Thinking
The interval \([n-k,n+k]\) has length \(O(k)\) and \(k\le 100\), so we test \(n\&x=0\) for each \(x\) and add the hits. The left end is clamped at \(1\) to skip non-positive integers.
No digit-DP is required.
We iterate through \(x\) within the range \([\max(1, n - k), n + k]\). If the bitwise AND result of \(n\) and \(x\) is \(0\), we accumulate \(x\) into the answer.
After the iteration ends, simply return the answer.
The time complexity is \(O(k)\), and the space complexity is \(O(1)\).
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 | |