目录
201. 数字范围按位与 Bitwise-and-of-numbers-range 🌟🌟
202. 快乐数 Happy Number 🌟
🌟 每日一练刷题专栏 🌟
Rust每日一练 专栏
Golang每日一练 专栏
Python每日一练 专栏
C/C++每日一练 专栏
Java每日一练 专栏
201. 数字范围按位与 Bitwise-and-of-numbers-range
给你两个整数 left
和 right
,表示区间 [left, right]
,返回此区间内所有数字 按位与 的结果(包含 left
、right
端点)。
示例 1:
输入:left = 5, right = 7 输出:4
示例 2:
输入:left = 0, right = 0 输出:0
示例 3:
输入:left = 1, right = 2147483647 输出:0
提示:
0 <= left <= right <= 2^31 - 1
代码:
func rangeBitwiseAnd(left int, right int) int {
res := left
for i := left + 1; i <= right; i++ {
res &= i
}
return res
}
func rangeBitwiseAnd(left int, right int) int {
shift := 0
for left < right {
left >>= 1
right >>= 1
shift++
}
return left << shift
}
func rangeBitwiseAnd(left int, right int) int {
for left < right {
right &= (right - 1)
}
return right
}
输出:
202. 快乐数 Happy Number
编写一个算法来判断一个数 n
是不是快乐数。
「快乐数」 定义为:
- 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
- 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
- 如果这个过程 结果为 1,那么这个数就是快乐数。
如果 n
是 快乐数 就返回 true
;不是,则返回 false
。
示例 1:
输入:n = 19 输出:true 解释: 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02 + 02 = 1
示例 2:
输入:n = 2 输出:false
提示:
1 <= n <= 2^31 - 1
代码:
func isHappy(n int) bool {
for n != 1 && n != 4 {
sum := 0
for n > 0 {
digit := n % 10
sum += digit * digit
n /= 10
}
n = sum
}
return n == 1
}
func isHappy(n int) bool {
seen := make(map[int]bool)
for n != 1 && !seen[n] {
seen[n] = true
sum := 0
for n > 0 {
digit := n % 10
sum += digit * digit
n /= 10
}
n = sum
}
return n == 1
}
func isHappy(n int) bool {
slow, fast := n, n
for {
slow = digitSquareSum(slow)
fast = digitSquareSum(fast)
fast = digitSquareSum(fast)
if slow == fast {
break
}
}
return slow == 1
}
func digitSquareSum(n int) int {
sum := 0
for n > 0 {
digit := n % 10
sum += digit * digit
n /= 10
}
return sum
}
输出:
🌟 每日一练刷题专栏 🌟
✨ 持续,努力奋斗做强刷题搬运工!
👍 点赞,你的认可是我坚持的动力!
🌟 收藏,你的青睐是我努力的方向!
✎ 评论,你的意见是我进步的财富!
☸ 主页:https://hannyang.blog.csdn.net/
Rust每日一练 专栏(2023.5.16~)更新中... | |
Golang每日一练 专栏(2023.3.11~)更新中... | |
Python每日一练 专栏(2023.2.18~2023.5.18)暂停更 | |
C/C++每日一练 专栏(2023.2.18~2023.5.18)暂停更 | |
Java每日一练 专栏(2023.3.11~2023.5.18)暂停更 |