雕刻时光

just do it……nothing impossible
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数组中最小数字

Posted on 2011-11-09 21:13  huhuuu  阅读(394)  评论(0编辑  收藏  举报

如123321 保留4个数字最小结果为1221

线性算法:

先在1-3个之间找,记录ri

再到ri+1-4之间找

。。。

View Code
#include<stdio.h>
#include<string.h>
char ss[60009];
int main()
{
while(scanf("%s",ss)!=EOF)
{
int i,len,end,ri=0;
len=strlen(ss);
int add,app=0;
//scanf("%d",&add);
add=6;
ri=-1;
while(add--)
{
int min=99,t;
t=len-add-1;
for(i=ri+1;i<=t;i++)
{
if(add==5&&ss[i]=='0') continue;//除去首位为0的情况

if(min>(ss[i]-'0'))
{
min=(ss[i]-'0');
ri=i;
}
}
printf("%c",ss[ri]);
}
printf("\n");
}
}