首页 > 代码库 > 2014华为校招机考模拟--求最大递增数

2014华为校招机考模拟--求最大递增数

 

描述:

输入一串数字,找到其中包含的最大递增数。递增数是指相邻的数位从小到大排列的数字。如: 2895345323,递增数有:289,345,23, 那么最大的递减数为345。

运行时间限制:

无限制

内存限制:

无限制

输入:

输入一串数字,默认这串数字是正确的,即里面不含有字符/空格等情况

输出:

输出最大递增数

样例输入:

123526897215

样例输出:

2689

答案提示:

 

一道基础的动态规划算法题,采用C++实现。代码如下:

 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5     char num[50]; 6     int currentValue=http://www.mamicode.com/0; 7     int maxValue=http://www.mamicode.com/0; 8     while (cin>>num) 9     {10         int i=0;11         for (i=0;num[i];i++)12         {13             currentValue=http://www.mamicode.com/currentValue*10+num[i]-0;14             if(num[i]>=num[i+1])15             {16                 if(currentValue>maxValue)17                     maxValue=http://www.mamicode.com/currentValue;18                 currentValue=http://www.mamicode.com/0;19             }20         }21         cout<<maxValue<<endl;22         maxValue=http://www.mamicode.com/0;23     }24     return 0;25 }

运行结果:

 

2014华为校招机考模拟--求最大递增数