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

题目:

题解:

cpp 复制代码
class Solution {
public:
    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;
    }
};
相关推荐
晨晖21 分钟前
直接插入排序
c语言·数据结构·c++·算法
郝学胜-神的一滴10 分钟前
Linux的pthread_self函数详解:多线程编程中的身份标识器
linux·运维·服务器·开发语言·c++·程序人生
oioihoii15 分钟前
C++高并发编程核心技能解析
开发语言·c++
玖剹18 分钟前
字符串相关题目
c语言·c++·算法·leetcode
千里马-horse30 分钟前
AsyncContext
开发语言·前端·javascript·c++·napi·asynccontext
宠..34 分钟前
为单选按钮绑定事件
运维·服务器·开发语言·数据库·c++·qt·microsoft
宠..39 分钟前
对单选按钮分组
开发语言·数据库·c++·qt·安全·安全性测试
海盗猫鸥1 小时前
「C++」继承
开发语言·c++
yayapoi~1 小时前
c++开方效率测试
c++
阿闽ooo1 小时前
抽象工厂模式实战:用C++打造家具生产系统(附UML图与完整代码)
c++·设计模式·抽象工厂模式·uml