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;
}
相关推荐
文丑颜不良啊3 小时前
LeetCode2841~2860题目解析
java·leetcode
文丑颜不良啊4 小时前
LeetCode2921~2940题目解析
java·leetcode
文丑颜不良啊7 小时前
LeetCode2901~2920题目解析
java·leetcode
文丑颜不良啊9 小时前
LeetCode2861~2880题目解析
java·leetcode
another heaven9 小时前
【C/C++ 第一次跨越(上):用 C++11/14 停止制造新的旧代码】
c语言·c++·制造
another heaven1 天前
【C/C++ Ranges 是零开销抽象吗?拆开管道、惰性求值和编译期膨胀】
c语言·开发语言·c++
Code_Solitude1 天前
C语言动态内存 + 柔性数组 + 数组名退化
c语言·算法·柔性数组
文丑颜不良啊1 天前
LeetCode2821~2840题目解析
java·leetcode
Zwawa1 天前
让屏幕动起来:OLED动画效果,丝滑光标、帧动画和一只贪吃蛇
c语言·单片机·嵌入式
Pniubi1 天前
力扣24. 两两交换链表中的节点(递归)
算法·leetcode·链表