剑指offer-孩子们的游戏(圆圈中最后剩下的数)
来源:互联网 发布:java获取webapp下路径 编辑:程序博客网 时间:2024/06/05 08:59
问题
题目:[剑指offer-孩子们的游戏]
思路
约瑟夫环的问题。
具体做法,考虑到删除,最好的办法是用循环链表。
但是,也没关系,用STL list即可。
小心迭代器失效的问题!!!其实,链表只是当前元素可能失效,但是迭代器可能到无效位置。
代码
class Solution {public: int LastRemaining_Solution(int n, int m) { if( n < 1 || m < 1) return -1; list<int> nums; for(int i = 0; i < n; ++i){ nums.push_back(i); } typedef list<int>::iterator iter; iter it = nums.begin(); while(nums.size() > 1){ // move forward m-1 step for(int k = 0; k < m-1; ++k){ ++it; if( it == nums.end() ) it = nums.begin(); } // delete the mth one it = nums.erase(it); if( it == nums.end() ) it = nums.begin(); } return *it; }};
阅读全文
0 0
- 剑指offer--孩子们的游戏(圆圈中最后剩下的数)
- 《剑指offer》孩子们的游戏(圆圈中最后剩下的数)
- 剑指offer:孩子们的游戏(圆圈中最后剩下的数)
- 剑指offer—孩子们的游戏(圆圈中最后剩下的数)
- 《剑指offer》——孩子们的游戏(圆圈中最后剩下的数)
- 剑指offer:孩子们的游戏(圆圈中最后剩下的数)
- 剑指Offer--045-孩子们的游戏(圆圈中最后剩下的数)--约瑟夫环
- 剑指offer(三十一)之孩子们的游戏(圆圈中最后剩下的数)
- 剑指offer题解 孩子们的游戏(圆圈中最后剩下的数)
- 剑指offer(43)-孩子们的游戏(圆圈中最后剩下的数)
- 《剑指offer》-孩子们的游戏(圆圈中最后剩下的数)
- 剑指Offer: 孩子们的游戏(圆圈中最后剩下的数)
- 剑指offer-孩子们的游戏(圆圈中最后剩下的数)
- 【剑指offer】孩子们的游戏(圆圈中最后剩下的数)
- 剑指offer--面试题45: 孩子们的游戏(圆圈中最后剩下的数)
- 牛客:剑指offer:孩子们的游戏(圆圈中最后剩下的数) (Java)
- 剑指offer:孩子们的游戏(圆圈中最后剩下的数)
- 剑指offer-46.孩子们的游戏(圆圈中最后剩下的数)
- E. One-Way Reform
- 栈的压入、弹出序列
- R中read.csv第一行报错
- R的Parallel包学习
- UVa439---Knight Moves(BFS应用)
- 剑指offer-孩子们的游戏(圆圈中最后剩下的数)
- HDU5688 Problem D【字符串排序+MAP】
- 解析xml 几种方法
- HashMap,HashTable,TreeMap区别和用法
- idea 使用struts2出现struts-default显红的解决办法
- C语言:定义字符串的几种方式
- D
- 基于比特币价差的统计套利策略
- 2017 多校训练第一场 KazaQ's Socks