最后一个被删除的元素

n个元素围成一圈,每次删除第m个元素,求最后一个被删除的元素。

#include <iostream.h>
#include "list"
using namespace std;
//使用list而非vector
int findLast(int m,int n){
    if(m<=0||n<=0){
        return -1;
    }
    list<int> v;
    for(int i=0;i<n;i++){
        v.push_back(i);
    }
    list<int>::iterator cur=v.begin();
    while(v.size()>1){
        for(int i=1;i<m;i++){
            cur++;
            if(cur==v.end()){
                cur=v.begin();
            }
        }
        //此时,cur在第m-1和m个元素之间

        list<int>::iterator next=++cur;
        if(next==v.end()){
            next=v.begin();
        }
        cur--;
        v.erase(cur);
        cur=next;
    }
    return *cur;
}

int main(int argc, char *argv[])
{
    cout<<findLast(1,10)<<endl;
    return 0;
}
时间: 2024-10-10 12:46:14

最后一个被删除的元素的相关文章

往一个容器 添加删除子元素演示,和,给数 组添加自定义方法

/*2015 12 2 往一个容器 添加删除子元素演示*/ //全局静态变量的写法 (function(){ //获取元素对象 var container = document.getElementById("container"); var btnAdd = document.getElementById("btnAdd"); var btnDel = document.getElementById("btnDel"); //定义数组 var

循环删除元素,返回最后一个被删除元素的下标

输入一个整数n(n大于等于2,小于等于1000),则从i=2开始每隔两个元素在数组arr[n]中删除该元素,可以在数组中循环,请返回最后一个被删除元素的下标: #include<iostream> #include<vector> using namespace std; int search(int n){ vector<int>visited(n,0); if(n==2){ return 1; } int count=0; int i=2; while(true){

jQuery 删除HTML元素

jQuery使用下面两个方法来删除或是清空某个HTML元素. remove() – 删除指定的元素(包括其子元素) empty() – 清空指定元素的子元素 例如: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JQuery Demo</title> <script src="scripts/jquery-1.9.1.js&q

C语言 &#183; 删除重复元素

算法提高 11-2删除重复元素 时间限制:10.0s   内存限制:256.0MB 问题描述 为库设计新函数DelPack,删除输入字符串中所有的重复元素.不连续的重复元素也要删除. 要求写成函数,函数内部使用指针操作. 样例输入 1223445667889 样例输出 13579 样例输入 else 样例输出 ls 数据规模和约定 字符串数组最大长度为100. 1 /* 2 思路: 3 将字符串存入字符数组a中,设将值拷贝给数组b,遍历b的每个元 4 素,与a中的每个元素比较,有相同则b中对应元

遍历list集合删除指定元素方法

今天的在项目中犯的一个错误记录一下: 刚开始粗心写成for喜欢遍历 这样会出现下表越界的问题 应该是iterate遍历移除集合中的元素 以下是转载: 一种错误的方式: for(int i = 0 , len= list.size();i<len;++i){     if(list.get(i)==XXX){          list.remove(i);     }   } 上面这种方式会抛出如下异常: Exception in thread "main" java.lang.

动态的添加或者删除指定元素代码实例

动态的添加或者删除指定元素代码实例:本章节介绍一段代码实例,能够动态的添加或者删除指定的元素,这里不管实际应用中此代码出现的概率有多大,只在于如何实现类似的功能,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /&

在java中删除数组元素的练习

有一个有序整数数组,要求输入一个数字,在数组中查找是否有这个数,如果有,将该数作为最后一个元素(其他元素仍然有序):如果没有,则显示“数组中没有这个数!” public static void main(String[] args) { int[] m={1,2,3,4,5,6,7,8,9,10}; System.out.println("请输入一个整数:"); Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int ind

Python在迭代器中删除列表元素

在迭代器中删除列表元素是非常危险的,因为迭代器是直接对列表的数据进行引用 把列表拷贝给迭代器,然后对原列表进行删除操作就没问题了 pos=turtle.move() for each_fish in fish[:]: if each_fish.move()==pos: #鱼儿被吃掉 turtle.eat() fish.remove(each_fish) print('有一条鱼被吃') Python的List的底层是实现是一个PyObject*数组.如果每次增加一个元素都扩张内存的话效率太低,在增

(每日算法)LeetCode --- Remove Duplicates from Sorted Array II (删除重复元素II)

Remove Duplicates from Sorted Array II Leetcode 题目: Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For example, Given sorted array A = [1,1,1,2,2,3], Your function should return length = 5, and A is now [1,1,2,2