390. 消除游戏

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

示例:

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

输出:
6
PS:
最下面那一行是真正大佬的思路

class Solution {public int lastRemaining(int n) {boolean isNormal = true;int len = n;int start = 1;int step = 1;while (len > 1) {if (isNormal) {start = start + step;} else {start = len % 2 == 0 ? start : start + step;}step = step * 2;len = len / 2;isNormal = !isNormal;}return start;//  return n == 1 ? 1 : 2 * (n / 2 + 1 - lastRemaining(n / 2));}
}

Java实现 LeetCode 390 消除游戏相关推荐

  1. [LeetCode]390.消除游戏

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

  2. LeetCode 390. 消除游戏

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

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

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

  4. LeetCode——390.消除游戏

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

  5. Leetcode 390.消除游戏

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

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

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

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

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

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

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

  9. 【LeetCode】390. 消除游戏

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

最新文章

  1. Android在xml中定义Shape
  2. JS详细入门教程(上)
  3. boost::hana::max用法的测试程序
  4. 批评代码而不是人!15年程序员的职场箴言
  5. 排队问题解题思路_1120各数的认识解决问题
  6. 【Spring学习】spring依赖注入用法总结
  7. java小程序显示多种按钮_微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能...
  8. 安全出口指示灯警报、如何解除呢
  9. 取消endnotes参考文献格式域的步骤_大学体悟-毕业论文格式篇
  10. Oracle RAC备份异机单实例恢复演练
  11. Vmware Linux设置固定IP
  12. 计算机学科 集体备课记录,信息技术学科组集体备课活动记录
  13. 一个OpenMP的学习程序
  14. 儿童机器人编程语言_机器人十大流行编程语言的介绍
  15. 下载历史版本的英伟达显卡驱动
  16. d3.js 旋转图形_凭布青云拼布图形设计软件下载-布艺设计软件 v2.0.0.1 官方版
  17. 古诗文网站的网络爬虫编写方式,通过网络爬虫抓去内容
  18. win10设置Ctrl+Shift切换输入法
  19. 什么是 IoT App SDK?
  20. wireshark插件 - 添加UI子树, 向子树上添加分析后的文本

热门文章

  1. 2021年全球与中国氮气服务车行业市场规模及发展前景分析
  2. html自动下拉框怎么做,html下拉菜单怎么做?
  3. C#中Internal关键字的总结
  4. python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...
  5. 神奇的超级搜索工具SuperSearchCN
  6. 华为数通笔记-组播协议介绍之IGMP
  7. C语言数字三角形(动态规划)
  8. 【中级软件设计师】—(摆烂记点单词)计算机专业英语单词总结(四十三)
  9. 20230102英语学习
  10. 为Qt应用程序制作maemo安装包