2015.4.2阿里c/c++实习生笔试最后一题

本文分享了作者参加2015年阿里c/c++实习生笔试的经历,感觉自己水平不足,特别是遇到附加题时感到更加吃力。作者完成了最后一个附加题,但意识到代码可能存在问题,期待专家们的指正。
摘要由CSDN通过智能技术生成

不知道为啥自己居然报了阿里的游戏运营专员,幸好小伙伴报了c/c++,我在一旁驻足观看,本来觉得自己很水,一看这些题觉得自己更tm水了!

尤其tm最后三个附加题,前两个读不懂,就做了最后一个。

如下,欢迎各位大大们给予批评,水平灰常有限,代码肯定有问题,不过自己没想到(确实没考虑重复数字的情况)……

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
    int a[]={5,8,10,4,3,1,2,6,9,7};//随意数组,原数组1,2,5,8,10,4,3,6,9,7
    int flag=0,cnt=0;
    vector<int> v1(a,a+10);
    //while(cin>>a)
        //v1.push_back (a);
    vector<int> v2(v1);
    sort(v2.begin(),v2.end());//将v2按升序排序
    vector<int>::size_type size=v1.size();
    for(vector<int>::size_type i=0;i!=size&&flag!=size;i++)
        {
            if(v1[i]==v2[flag])//flag是该输出的那个数的下标
            {
                vector<int> ::iterator ip=v1.begin()+i;
                if((flag+1)!=size&&find(v1.begin(),ip,v2[flag+1])!=ip)//每次都检验该次的数字(v2[flag])之前是否有与其在v2(v2[flag+1])中相邻的下一个数
                {
                    while((flag+1)!=size&&find(v1.begin(),ip,v2[flag+1])!=ip)
                    {
                        cnt++;//该数之前有多少比他大的
                        flag++;
                    }
                    while(cnt>=0)

                    {
                        cout<<v2[flag-cnt]<<" ";
                        cnt--;
                    }
                    flag++;
                    cnt=0;
                    cout<<endl;

                }
                else

                {
                    cout<<v2[flag]<<endl;
                    flag++;
                }
            }
            else
            {
                continue;
            }


        }

    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值