C语言 | Leetcode C语言题解之第390题消除游戏

题目:

题解:

cpp 复制代码
int lastRemaining(int n) {
    int a1 = 1;
    int k = 0, cnt = n, step = 1;
    while (cnt > 1) {
        if (k % 2 == 0) { // 正向
            a1 = a1 + step;
        } else { // 反向
            a1 = (cnt % 2 == 0) ? a1 : a1 + step;
        }
        k++;
        cnt = cnt >> 1;
        step = step << 1;
    }
    return a1;
}
相关推荐
yzq19912740 分钟前
C语言#和##的用法(附带示例)
c语言·宏定义·预处理运算符·字符串化·标记连接
普贤莲花2 小时前
【2026年第18周---写于20260501】---舍得
程序人生·算法·leetcode
m0_629494732 小时前
LeetCode 热题 100-----16.除了自身以外数组的乘积
数据结构·算法·leetcode
We་ct3 小时前
LeetCode 97. 交错字符串:动态规划详解
前端·算法·leetcode·typescript·动态规划
无敌昊哥战神3 小时前
【LeetCode 37】解数独 (Sudoku Solver) —— 回溯法详解 (Python/C/C++)
c语言·c++·python·算法·leetcode
风筝在晴天搁浅3 小时前
LeetCode 162.寻找峰值
算法·leetcode
jinyishu_3 小时前
链表经典OJ题
c语言·数据结构·算法·链表
爱编码的小八嘎3 小时前
C语言完美演绎9-14
c语言
罗超驿4 小时前
双指针算法经典案例:LeetCode 283. 移动零(Java详解)
java·算法·leetcode
人道领域4 小时前
【数据结构与算法分析】二叉树面试通关手册:遍历图解 · 分类对比 · 代码模板
数据结构·算法·leetcode·深度优先