一、描述

给定一个从1 到 n 排序的整数列表。
首先,从左到右,从第一个数字开始,每隔一个数字进行删除,直到列表的末尾。
第二步,在剩下的数字中,从右到左,从倒数第一个数字开始,每隔一个数字进行删除,直到列表开头。
我们不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。
返回长度为 n 的列表中,最后剩下的数字。

二、示例

示例:

输入:
n = 9,
1 2 3 4 5 6 7 8 9
2 4 6 8
2 6
6输出:
6

三、分析

边界条件

if(n == 1)return 1;
if(n <= 4)return 2;

n > 4 时,由于奇数在第一轮删除中就被干掉了,所以若 n 为偶数时,n + 1n 具有相同的结果。

if(n % 2 == 1)n = n - 1;

四、实现

class Solution {public:int lastRemaining(int n) {if (n == 1)return 1;if (n <= 4)return 2;if(n % 2 == 1)n = n - 1;if (n % 4 != 0)return 4 * lastRemaining(n / 4);elsereturn 4 * lastRemaining(n / 4) - 2;}
};

【LeetCode】390.消除游戏相关推荐

  1. [LeetCode]390.消除游戏

    [LeetCode]390.消除游戏 题目 示例 方法 模拟 题目 列表 arr 由在范围 [1, n] 中的所有整数组成,并按严格递增排序.请你对 arr 应用下述算法: 从左到右,删除第一个数字, ...

  2. Java实现 LeetCode 390 消除游戏

    390. 消除游戏 给定一个从1 到 n 排序的整数列表. 首先,从左到右,从第一个数字开始,每隔一个数字进行删除,直到列表的末尾. 第二步,在剩下的数字中,从右到左,从倒数第一个数字开始,每隔一个数 ...

  3. LeetCode 390. 消除游戏

    ​​​​​​390. 消除游戏 给定一个从1 到 n 排序的整数列表. 首先,从左到右,从第一个数字开始,每隔一个数字进行删除,直到列表的末尾. 第二步,在剩下的数字中,从右到左,从倒数第一个数字开始 ...

  4. LeetCode 390. 消除游戏(类似约瑟夫环,找映射规律)

    1. 题目 给定一个从1 到 n 排序的整数列表. 首先,从左到右,从第一个数字开始,每隔一个数字进行删除,直到列表的末尾. 第二步,在剩下的数字中,从右到左,从倒数第一个数字开始,每隔一个数字进行删 ...

  5. LeetCode——390.消除游戏

    大佬,牛!!! 题目:给定一个n,然后从1开始删除元素,各一个删一个,一直到n,然后再反向删除,也是各一个删一个,都是从剩下的元素中的第一个开始删除,最终数组剩下一个元素,返回这个元素即可.[1, 2 ...

  6. Leetcode 390.消除游戏

    题目地址 思路 第一种方法肯定是遍历,暴力删除,但是数据量一大就容易超时. 第二种方法,我们想到利用等差数列来进行模拟. 我们定义首项a0,公差为d,项数为size. 其中公差每次都是翻倍,项数每次都 ...

  7. LeetCode:390. 消除游戏————中等

    题目 390. 消除游戏 列表 arr 由在范围 [1, n] 中的所有整数组成,并按严格递增排序.请你对 arr 应用下述算法: 从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾 ...

  8. 390. 消除游戏(约瑟夫环)

    390. 消除游戏 列表 arr 由在范围 [1, n]中的所有整数组成,并按严格递增排序.请你对 arr 应用下述算法: 从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾. 重复 ...

  9. leetcode 390. Elimination Game | 390. 消除游戏(Java)

    题目 https://leetcode.com/problems/elimination-game/ 题解 方法1:模拟(内存超出限制) 最朴素的思路,模拟每一轮的消除,直到剩余大小为 1 为止. 此 ...

  10. 【LeetCode】390. 消除游戏

    题目 给定一个从1 到 n 排序的整数列表. 首先,从左到右,从第一个数字开始,每隔一个数字进行删除,直到列表的末尾. 第二步,在剩下的数字中,从右到左,从倒数第一个数字开始,每隔一个数字进行删除,直 ...

最新文章

  1. 项目中使用oracle序列
  2. 关于html和CSS的几个基本知识点
  3. MatLab 自编的 均值滤波、中值滤波、高斯滤波 图像处理函数
  4. SwiftUI之深入解析如何定制视图的动画和转场
  5. mysql数据库引擎InnoDB和MyISAM的区别
  6. 【CSON原创】HTML5字体动态粒子效果发布
  7. python自动化测试常见面试题二_思考|自动化测试面试题第二波
  8. [LeetCode] Remove Element 分析
  9. XNOR.ai融资1200万美元
  10. linux 0.11 返回用户侧,iPhone 11 11 Pro 用户必备教程:重启手机,恢复模式,DFU模式...
  11. win2008r2 惠普g160鼠标_惠普M260鼠标驱动简单体验
  12. Ubuntu 隐藏上方状态栏、左边任务栏及菜单按钮移到下方居中及隐藏(详细)
  13. 如何用photoshop做24色环_photoshop制作漂亮色环的教程(2)
  14. 图书isbn批量生成一维条码
  15. 根据身份证号判断年龄
  16. 2021-4-21大学化学无机原理(8)缓冲溶液及pH值的计算,溶度积规则。
  17. 【Android QR Code】开源项目:ZXing(三)二维码解码
  18. 【文献阅读】Commission Fee is not Enough: A Hierarchical Reinforced Framework for Portfolio Management
  19. Imagination领先IP助力国产处理器 从芯片走向解决方案
  20. nodejs中解决发出响应数据正常但是浏览器没有正确显示的问题

热门文章

  1. JVM 的内存结构和内存分配
  2. springboot初始化加载数据_Spring Boot配置数据加载大全
  3. access 导入 txt sql语句_从零开始学习 MySQL 系列索引、视图、导入和导出
  4. 异或运算_专题 | 异或运算的一些应用
  5. 静态配置_Linux网络配置之NAT静态ip配置
  6. 看准网点评没有了_大众点评“亡”于2020
  7. java怎么添加地图_javaweb怎样添加百度地图
  8. 关于计算机图形标准化的论述 哪个是正确的,地大《计算机图形学(新)》在线作业 参考资料...
  9. cpu烤机工具_MySQL常用工具选择和建议
  10. 3 实现模糊遮罩_有了这3个神器,你就不用为抠图发愁了!