首页 > 其他 > 详细

微软2014实习生及秋令营技术类职位在线测试-3.Reduce inversion count.cpp

时间:2014-04-15 14:30:05      阅读:425      评论:0      收藏:0      [点我收藏+]

这题没做对,也不知道错在哪里。

思路是:

先把整数都放到数组里

计算inversion个数

测了很多组都没错

bubuko.com,布布扣
#include<iostream>
#include <string>
#include<string.h>
#include<algorithm>
#include<sstream>
using namespace std;
int calucate(int *a,int len){
    int minx=0;
    for(int i=0;i<len;i++){
        for(int j=i+1;j<len;j++){
            if(a[i]>a[j])
                minx++;
        }
    }
    return minx;
}
int main(){
    string temp1;
    while(getline(cin,temp1)){
        int num[55],k=0,fuhao=0;
        for(int i=0;i<temp1.size();){
            num[k]=0;
            while(i<temp1.size()&&temp1[i]!=,){
                if(temp1[i]==-){
                    fuhao=1;
                    i++;
                    
                }
                num[k]=num[k]*10+temp1[i]-0;
                i++;
            }
            if(fuhao){
                fuhao=0;
                num[k]=-num[k];
            }
            k++;
            i++;
        }
        int minx=calucate(num,k);
        for(int i=0;i<k;i++){
            for(int j=i+1;j<k;j++){
                swap(num[i],num[j]);
                int temptemp=calucate(num,k);
                if(minx>temptemp)
                    minx=temptemp;
                swap(num[j],num[i]);
            }
        }
        cout<<minx<<endl;
    }
}
bubuko.com,布布扣

 

微软2014实习生及秋令营技术类职位在线测试-3.Reduce inversion count.cpp,布布扣,bubuko.com

微软2014实习生及秋令营技术类职位在线测试-3.Reduce inversion count.cpp

原文:http://www.cnblogs.com/royjwy/p/3663525.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!