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;
    }
};
相关推荐
Sakura_j_h_3 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
程序喵大人4 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Pniubi5 小时前
力扣283移动零(双指针法)
算法·leetcode·职场和发展
jimy16 小时前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
会编程的小孩8 小时前
C++ 定时器
c++
沫璃染墨9 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
揽星河..10 小时前
【C语言】分支和循环
c语言·c++·算法
Fuyo_111912 小时前
C++ AVL树保姆级详解:从平衡因子到四大旋转机制
java·c++·算法
傲世仙尊13 小时前
继承-类设计层次复用切片转换与菱形继承的死结
c++
架构师伯子明13 小时前
FFmpeg C++学习(一):编译和demo
开发语言·c++·学习