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
}
相关推荐
漫随流水24 分钟前
leetcode回溯算法(90.子集Ⅱ)
数据结构·算法·leetcode·回溯算法
June bug33 分钟前
(#数组/链表操作)合并两个有重复元素的无序数组,返回无重复的有序结果
数据结构·python·算法·leetcode·面试·跳槽
普贤莲花37 分钟前
取舍~2026年第4周小结---写于20260125
程序人生·算法·leetcode
x70x801 小时前
Go中nil的使用
开发语言·后端·golang
苦藤新鸡1 小时前
39.二叉树的直径
算法·leetcode·深度优先
TracyCoder1231 小时前
LeetCode Hot100(6/100)——15. 三数之和
算法·leetcode
老鼠只爱大米2 小时前
LeetCode经典算法面试题 #21:合并两个有序链表(迭代法、原地合并法等多种实现方案详解)
算法·leetcode·链表·优先队列·迭代法·合并两个有序链表·原地合并
源代码•宸2 小时前
Leetcode—47. 全排列 II【中等】
经验分享·后端·算法·leetcode·面试·golang·深度优先
TracyCoder1233 小时前
LeetCode Hot100(7/100)—— 3. 无重复字符的最长子串
算法·leetcode
客卿1233 小时前
力扣二叉树简单题整理--(包含常用语法的讲解)
算法·leetcode·职场和发展