zoukankan      html  css  js  c++  java
  • leetcode Plus One

    Given a non-negative number represented as an array of digits, plus one to the number.

    The digits are stored such that the most significant digit is at the head of the list.

    Subscribe to see which companies asked this question

    刚开始没有理解题意。意思事实上表示给你一个vector,这个vector将一个数字每一位拆分,例如,100就会变成[1,0,0];

    让你把这个数加1,就100变成101,返回vector[1,0,1]

    这个问题不难,有两个问题需要注意的:

    一、给你一个vector,并不表示,每个vector的数字是0~9的,有可能是[1,10,1],事实上它是201。所以就是一个需要规格化的。

    二、有可能出现第一个元素进位,那么就需要在vector的开始再加入一个元素,我在这里用到的是vector.insert(vector.begin(),val);

    在这补充一下insert函数的用法:

    insert() 函数有以下三种用法: 

    在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器, 
    在指定位置loc前插入num个值为val的元素 
    在指定位置loc前插入区间[start, end)的所有元素 . 
    举例: 

    //创建一个vector,置入字母表的前十个字符 
    vector <char> alphaVector; 
    for( int i=0; i < 10; i++ ) 
      alphaVector.push_back( i + 65 ); 

    //插入四个C到vector中 
    vector <char>::iterator theIterator = alphaVector.begin(); 
    alphaVector.insert( theIterator, 4, 'C' ); 

    //显示vector的内容 
    for( theIterator = alphaVector.begin(); theIterator != alphaVector.end(); theIterator++ ) 
      cout < < *theIterator; 

     1 class Solution {
     2 public:
     3     vector<int> plusOne(vector<int>& digits) {
     4         int s=digits.size();
     5         int n=0,j=0,r=0;
     6         digits[s-1]+=1;
     7         for(int i=s-1;i>=0;i--){
     8             if(digits[i]>=10){
     9                 n=digits[i];
    10                 digits[i]=0;
    11                 j=i;
    12                 while(n!=0){
    13                     r=n%10;
    14                     if(j>=0) digits[j--]+=r;
    15                     else digits.insert(digits.begin(),r);
    16                     n/=10;
    17                 }
    18             } 
    19         }
    20         return digits;
    21     }
    22 };
  • 相关阅读:
    Linux下tomcat中多项目配置druid报错的问题
    chrome实用快捷键速记
    count 与 group by
    H5相机上传图片压缩
    图片通过转base64上传
    内网之间访问
    composer 加载第三方类库
    访问一个项目生成两个session文件原因
    arttemplate.js 如何不直接输出html代码
    Tomcat 支持多少并发量
  • 原文地址:https://www.cnblogs.com/LUO77/p/4997353.html
Copyright © 2011-2022 走看看