1523. Count Odd Numbers in an Interval Range
Easy
- 題目描述
- 解答
Description
Given two non-negative integers low and high. Return the count of odd numbers between low and high (inclusive).
Example 1:
Input: low = 3, high = 7
Output: 3
Explanation: The odd numbers between 3 and 7 are [3,5,7].
Example 2:
Input: low = 8, high = 10
Output: 1
Explanation: The odd numbers between 8 and 10 are [9].
Constraints:
0 <= low <= high <= 10^9
Solution
- JavaScript(暴力解)
- TypeScript(公式解)
/**
* @param {number} low
* @param {number} high
* @return {number}
*/
var countOdds = function (low, high) {
let result = 0;
while (low <= high) {
if (low % 2 === 1) {
result++;
}
low++;
}
return result;
};
function countOdds(low: number, high: number): number {
return Math.floor((high + 1) / 2) - Math.floor(low / 2);
}
解題思路
本來用 arr.lengh 來解結果看到記憶體爆炸,後來想通欸不對啊直接簡化用變數++就好就過了,但複雜度超糟就是ㄌ
hint 中有提到一個點是可以從 (high - low + 1) 中判斷,改進之後變公式解甚至不用迴圈就可以直接算出。
心得
兩種解法分別放在 JavaScript 和 TypeScript 檔案中,暴力解放 js,公式解放 ts,順便附上記憶體爆炸的紀念照
