2805. Custom Interval π
Description
FunctionΒ customInterval
Given a function fn, a number delay and a number period, returnΒ a numberΒ id.
customIntervalΒ is a function that should execute the provided function fn at intervals based on a linear pattern defined by the formula delayΒ + periodΒ * count.Β
The count in the formulaΒ represents the number of times the interval has beenΒ executed starting from an initial value of 0.
Function customClearIntervalΒ
Given theΒ id. idΒ is theΒ returned value fromΒ the functionΒ customInterval.
customClearIntervalΒ should stop executingΒ provided function fn at intervals.
Note: The setTimeout and setInterval functions in Node.js return an object, not a number.
Β
Example 1:
Input: delay = 50, period = 20, cancelTime = 225
Output: [50,120,210]
Explanation:
const t = performance.now()Β Β
const result = []
Β Β Β Β Β
const fn = () => {
result.push(Math.floor(performance.now() - t))
}
const id = customInterval(fn, delay, period)
setTimeout(() => {
customClearInterval(id)
}, 225)
50 + 20 * 0 = 50 // 50ms - 1st function call
50 + 20Β * 1 = 70 // 50ms + 70ms = 120ms - 2nd function call
50 + 20 * 2 = 90 // 50ms + 70ms + 90ms = 210ms - 3rd function call
Example 2:
Input: delay = 20, period = 20, cancelTime = 150 Output: [20,60,120] Explanation: 20 + 20 * 0 = 20 // 20ms - 1st function call 20 + 20Β * 1 = 40 // 20ms + 40ms = 60ms - 2nd function call 20 + 20 * 2 = 60 // 20ms + 40ms + 60ms = 120ms - 3rd function call
Example 3:
Input: delay = 100, period = 200, cancelTime = 500 Output: [100,400] Explanation: 100 + 200 * 0 = 100 // 100ms - 1st function call 100 + 200Β * 1 = 300 // 100ms + 300ms = 400ms - 2nd function call
Β
Constraints:
20 <= delay, period <= 25020 <= cancelTime <= 1000
Solutions
Solution 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |