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;
}
相关推荐
CHTXRT1 分钟前
2025第十六届蓝桥杯大赛(软件赛)网络安全赛 Writeup
c语言·网络·web安全·网络安全·蓝桥杯·wireshark
小智学长 | 嵌入式1 小时前
单片机-89C51部分:4、固件烧录
c语言·单片机·嵌入式硬件
simple_whu2 小时前
C语言标准库函数setlocale用法详解
c语言
清泉-通达信编程专家-苏大毕业4 小时前
N字形上升形态选股代码如何编写?
c语言·开发语言·算法·青少年编程·启发式算法
qq_447429416 小时前
Linux0.11内存管理:相关代码
linux·c语言
梁下轻语的秋缘14 小时前
每日c/c++题 备战蓝桥杯(P1049 [NOIP 2001 普及组] 装箱问题)
c语言·c++·学习·蓝桥杯
加点油。。。。15 小时前
C语言高频面试题——指针函数和函数指针的区别
c语言·面试
Demons_kirit15 小时前
Leetcode 2845 题解
算法·leetcode·职场和发展
lkbhua莱克瓦2416 小时前
用C语言实现——一个中缀表达式的计算器。支持用户输入和动画演示过程。
c语言·开发语言·数据结构·链表·学习方法·交友·计算器
lwewan17 小时前
26考研——存储系统(3)
c语言·笔记·考研