geeksforgeeks-Array-Rotation and deletion

时间:2023-01-31 10:54:56
 

As usual Babul is again back with his problem and now with numbers. He thought of an array of numbers in which he does two types of operation that is rotation and deletion. His process of doing these 2 operations are that he first rotates the array in a clockwise direction then delete the last element. In short he rotates the array nth times and then deletes the nth last element. If the nth last element does not exists then he deletes the first element present in the array. So your task is to find out which is the last element that he deletes from the array so that the array becomes empty after removing it.

For example
A = {1,2,3,4,5,6}.
He rotates the array clockwise i.e. after rotation the array A = {6,1,2,3,4,5} and delete the last element that is {5} so A = {6,1,2,3,4}. Again he rotates the array for the second time and deletes the second last element that is {2} so A = {4,6,1,3}, doing these steps when he reaches 4th time, 4th last element does not exists so he deletes 1st element ie {1} so A={3,6}. So continuing this procedure the last element in A is {3}, so o/p will be 3.
 
Input:
The first line of input contains an integer T denoting the no of test cases. Then T test cases follow. Each test case contains two lines. The first line of each test case contains an integer N. Then in the next line are N space separated values of the array A.
 
Output:
For each test case in a new line print the required result.
 
Constraints:
1<=T<=200
1<=N<=100
1<=A[i]<=10^7
 
Example:
Input
2
4
1 2 3 4
6
1 2 3 4 5 6
Output:
2
3
### C++(gcc5.4)代码:
        #include <iostream>
        using namespace std;
        int main() {
        //code
       // define the number of test cases
       int T;
       cin>>T;
       
       for(int t=0; t<T; t++)
        {
           //get the two line input
           int N;
           cin>>N;
           int a[N];
           int i = 0;  
                for(i=0;i<N;i++)
               cin>>a[i];
        
                //Rotate and delete
                int index_delete = 1;
                int array_length = N;
                int tmp;
                while(array_length>1)  
                {
                    //Rotate
                    tmp = a[array_length - 1];
                    for(int j=array_length-1; j>0; j--)
                    {
                        a[j] = a[j-1];
                    }
                    a[0] = tmp;
                    
                    //delete
                    for(int k=array_length<index_delete?0:array_length-index_delete; k<array_length-1; k++)
                    {
                        a[k]=a[k+1];
                    }    
                    
                    index_delete += 1;
                    array_length -= 1; 
                }
                cout<<a[0]<<endl;
        }
       return 0;
        }
####注:更加严谨的将一行数字存入数组的代码如下,但是在测试时包含这部分代码的程序会提示超出时间限制!
·#include<iostream>  
using namespace std;  
int main()  
{  
    int a[50];  
    int i = 0;  
    char c;  
    while((c=getchar())!='\n')  
    {  
        if(c!=' ')//把这句判断条件改动  
        {  
            ungetc(c,stdin);  
            cin>>a[i++];  
        }  
    }  
    for(int j=0;j<i;j++)  
    {  
        cout<<"a["<<j<<"]:"<<a[j]<<endl;  
    }  
---
### python代码

geeksforgeeks-Array-Rotation and deletion的更多相关文章

  1. Data Structure Array&colon; Program for array rotation

    http://www.geeksforgeeks.org/array-rotation/ O(n), O(1) #include <iostream> #include <vecto ...

  2. geeksforgeeks-Array-Rotate and delete

    As usual Babul is again back with his problem and now with numbers. He thought of an array of number ...

  3. Must practice programming questions in all languages

    To master any programming languages, you need to definitely solve/practice the below-listed problems ...

  4. geeksforgeeks&commat; Largest Number formed from an Array

    http://www.practice.geeksforgeeks.org/problem-page.php?pid=380 Largest Number formed from an Array G ...

  5. geeksforgeeks&commat; Sorting Elements of an Array by Frequency &lpar;Sort&rpar;

    http://www.practice.geeksforgeeks.org/problem-page.php?pid=493 Sorting Elements of an Array by Frequ ...

  6. &lbrack;geeksforgeeks&rsqb; Count the number of occurrences in a sorted array

    Count the number of occurrences in a sorted array Given a sorted array arr[] and a number x, write a ...

  7. Suffix array

    A suffix array is a sorted array of all suffixes of a given string. The definition is similar to Suf ...

  8. 算法最坏,平均和最佳情况&lpar;Worst&comma; Average and Best Cases&rpar;-------geeksforgeeks 翻译

    最坏,平均和最佳运行时间(Worst, Average and Best Cases) 在上一篇文章中,我们讨论到了渐进分析可以解决分析算法的问题,那么在这一篇中,我们用线性搜索来举例说明一下如何用渐 ...

  9. 42&period;旋转数组的最小元素&lbrack;Get min value of rotated array&rsqb;

    [题目] 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个排好序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5 ...

随机推荐

  1. webpack-dev-server轻量级js高速打包、热部署服务器

    webpack是一个打包web项目的工具 ,可以实现css,js,less,cass,html的混淆加密,minify,结合webpack-dev-server热部署,非常方便前端页面和Nodejs的 ...

  2. mysql 导出select语句结果到excel文件等

    一.导出数据外部 1)mysql连接+将查询结果输出到文件.在命令行中执行(windows的cmd命令行,mac的终端) mysql -hxx -uxx -pxx -e "query sta ...

  3. 【lattice软核】MICO8流程

    The LatticeMico System software is composed of three bundled applications:  Mico System Builder (MS ...

  4. Maven——Maven核心概念

    原文:http://www.cnblogs.com/xdp-gacl/p/4051819.html 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1. ...

  5. hdu 2087-剪花布条(KMP)

    题意: 求文本串最多可以分成几个模式串. 分析: KMP #include <map> #include <set> #include <list> #includ ...

  6. oracle中extents存在的理由

    extents的特性:1:一个extent由相连的多个blocks组成,多个extents组成一个segment,2:oracle在为segment分配空间时,是以extent为单位因此extents ...

  7. 完数c实现

    完数,顾名思义,就是一个数如果恰好等于它的因子之和.例如6=1+2+3.编写找出1000以内的所有完数 #include <stdio.h> #include <stdlib.h&g ...

  8. Altium designer使用技巧集(1)

    1.如何生成PCB 先得新建个PCB文件(File-New-Pcb):然后保存下,在新建的PCB文件下:Design-Import Changes From PCB_PROJECT1.PRJPCB(D ...

  9. 【图像处理】Bilinear Image Scaling

    Bilinear image scaling is about the same as nearest neighbor image scaling except with interpolation ...

  10. 同盾安卓 Android应用 集成步骤:

    Android SDK 新版 Android SDK 旧版 1.点击下载最新SDK(当前版本3.0.3),并解压fraudmetrix-xxx.zip文件.解压后文件目录为: fm-core-xxx ...