Golang | Leetcode Golang题解之第390题消除游戏

题目:

题解:

Go 复制代码
func lastRemaining(n int) int {
    a1 := 1
    k, cnt, step := 0, n, 1
    for cnt > 1 {
        if k%2 == 0 { // 正向
            a1 += step
        } else { // 反向
            if cnt%2 == 1 {
                a1 += step
            }
        }
        k++
        cnt >>= 1
        step <<= 1
    }
    return a1
}
相关推荐
v_for_van6 小时前
力扣刷题记录7(无算法背景,纯C语言)
c语言·算法·leetcode
We་ct9 小时前
LeetCode 105. 从前序与中序遍历序列构造二叉树:题解与思路解析
前端·算法·leetcode·链表·typescript
王老师青少年编程10 小时前
2020年信奥赛C++提高组csp-s初赛真题及答案解析(选择题11-15)
c++·题解·真题·初赛·信奥赛·csp-s·提高组
Tisfy14 小时前
LeetCode 1523.在区间范围内统计奇数数目:两种方法O(1)算
算法·leetcode·题解
元亓亓亓17 小时前
LeetCode热题100--41. 缺失的第一个正数--困难
数据结构·算法·leetcode
识君啊19 小时前
Java 栈 - 附LeetCode 经典题解
java·数据结构·leetcode·deque··stack·lifo
苦藤新鸡20 小时前
63.排序数组中找元素的第一个元素和最后一个元素
算法·leetcode
Toormi21 小时前
Go 1.26在性能方面做了哪些提升?
开发语言·后端·golang
We་ct21 小时前
LeetCode 106. 从中序与后序遍历序列构造二叉树:题解+思路拆解
前端·数据结构·算法·leetcode·typescript