国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

66 Plus One

2019-11-14 23:44:21
字體:
來源:轉載
供稿:網友
66 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.

題目的意思是這樣的 給出一個非負的數,用數組來表示這個數,比如說9999就是[9,9,9,9]當對這個數加一的時候,將這個數用數組的形式返回。

很容易想到一個簡單的方法,設置一個進位,首先判斷數組最后一個元素加上1后是否產生進位(等于10),如果產生進位就將該元素置為0,其他的元素也是同樣的操作,在這邊有個小技巧,題目中說的是對這個數+1那么可以認為起始的進位就是1。當其中一個元素小于10的時候就直接將數組返回;當最高位執行完后沒有返回也就是說最高位產生了進位,那就要產生一個新的數組,最高位為1,其余都是0

 1 public class Solution { 2     public  int[] plusOne(int[] digits) { 3         int n = digits.length; 4         int jinwei = 1; 5         int i; 6         for (i = n - 1; i >= 0; i--) { 7             digits[i] += jinwei; 8             if (digits[i] < 10) 9                 return digits;10             /* 有進位 */11             else12                 digits[i] = 0;13         }14         /* 表示最高位有進位 */15         int[] newdigits = new int[n + 1];16         newdigits[0] = 1;17         for (int k = 1; k < n + 1; k++)18             newdigits[k] = 0;19         return newdigits;20     }21 }

下面是網上的C++代碼,借鑒一下

 1 class Solution { 2 public: 3   vector<int> plusOne(vector<int> &digits) { 4  5     int size = digits.size(); 6  7     if (digits[size - 1] < 9) 8     { 9       digits[size - 1] += 1;10       return digits;11     }12 13     // 是否需要進位14     bool carry = true;15 16     for (int i = size - 1; i >= 0; i --)17     {18       if (!carry)19       {20         break;21       }22 23       if (digits[i] == 9)24       {25         carry = true;26 27         // 進位后,原位置028         digits[i] = 0;29 30         if (i == 0)31         {32           // 數組首個數字進位后,需要新插入數字首位33           digits.insert(digits.begin(), 1);34         }35       }36       else37       {38         // 不進位,就退出了39           carry = false;40         digits[i] += 1;41       }42     }43 44     return digits;45   }46 };

又水一題~~ 233333


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临夏县| 上犹县| 当雄县| 东台市| 若尔盖县| 陵川县| 瓦房店市| 霍邱县| 峨眉山市| 无为县| 临湘市| 泾阳县| 都兰县| 通州市| 黎川县| 方正县| 麦盖提县| 曲水县| 启东市| 雅江县| 华蓥市| 封丘县| 镇雄县| 通化县| 云阳县| 阿瓦提县| 渝北区| 大宁县| 南昌县| 卢氏县| 辉南县| 玛沁县| 文山县| 平乐县| 淳安县| 年辖:市辖区| 温泉县| 福州市| 射洪县| 舞钢市| 宣汉县|