【leetcode】390. 消除游戏
int lastRemaining(int n){ return (n==1)?1 :2 * (n/2 - lastRemaining(n/2) + 1); }
int lastRemaining(int n){ int stack[100]={0}, pst=-1, i, res=1; for(i=0; n>1; i++){ if (i%2==0) stack[++pst]=2; else{ stack[++pst]=(n%2)?2 :1; } n/=2; } for (i=pst; i>=0; i--){ res=(stack[i]==2)?res*2 :res*2-1; } return res; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步