ICode9

精准搜索请尝试: 精确搜索
  • 390. 消除游戏2022-01-02 14:31:17

    查看原题 解题思路(循环模拟删除过程) 很不幸这种方法爆了,超时,但思路就是这样。 代码 /** * @param {number} n * @return {number} */ var lastRemaining = function(n) { let arr = []; for(let i = 1;i<=n;i++){ arr.push(i); } let flag = 1; while (arr.length >

  • 剑指 Offer 62. 圆圈中最后剩下的数字2021-12-31 20:05:45

        1 class Solution { 2 public: 3 int lastRemaining(int n, int m) { 4 if(n==1)return 0; 5 return (m%n+lastRemaining(n-1,m))%n;//以m%n为参考系,当成0,求得n-1的解再换系;也不用m%n主要是为了理解; 6 } 7 };  

  • 圆圈中最后剩下的数字(约瑟夫问题)2021-07-26 23:01:46

    0,1,…,n−1 这 n 个数字 (n>0) 排成一个圆圈,从数字 0 开始每次从这个圆圈里删除第 m 个数字。 求出这个圆圈里剩下的最后一个数字。 样例 输入:n=5 , m=3 输出:3 循环队列: class Solution { public: int lastRemaining(int n, int m){ queue<int> q; for(

  • 《剑指 offer》 学习46之圆圈中最后剩下的数2021-03-13 15:57:51

    题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出

  • leetcode:390. 消除游戏(数学,递归,中等)2020-11-30 10:02:53

    题目: 分析: 有些思维方式,真的很差!!! 比如这个题,第二步进行翻转不就是依然删除奇数位吗? 代码:写的代码质量很高呀!!! class Solution { public: int lastRemaining(int n) { if(n==1) return 1; n=n/2*2; int c=lastRemaining(n/2); return

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有