LintCode 题目:最大可能数值

URL:https://www.lintcode.com/problem/maximum-possible-value/description

描述

写一个给定整数N的函数,返回通过在整数N的十进制表示形式内插入一个'5'数字而获得的最大可能值。

  • N 是一个属于 [-8000, 8000] 范围的整数

样例

Example1:
Input: N = 268
Output: 5268
Example2:
Input: N = 670
Output: 6750
Example3:
Input: N = 0
Output: 50
Example4:
Input: N = -999
Output: -5999

在代码段中添加:

vector<int> lcc;
        int num=0,flag=0,o=0;
        if(N<0){
            N = -N;
            o=1;
        }
        while(N>10){
            lcc.push_back(N%10);
            N/=10;
        }
        lcc.push_back(N);
        int x = lcc.size();
        for (int i = x-1; i >= 0; i--) {
            /* code */
            if(o==0){
                if(lcc[i]<5){
                    lcc.insert(lcc.begin()+i+1,5);
                    flag = 1;
                    break;
                } 
            }else{
                if(lcc[i]>5){
                    lcc.insert(lcc.begin()+i+1,5);
                    flag = 1;
                    break;
                }
            }
               
        }
        if(flag==0)
            lcc.insert(lcc.begin(),5);
        for (int i = x; i >= 0; i--) {
            /* code */
            num=num*10+lcc[i];
        }
        if(o==0)
            return num;
        else
            return -num;

即可:

 

发布了303 篇原创文章 · 获赞 550 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_42410605/article/details/103283369