Plus One解题报告分析
来源:互联网 发布:mac的照片导入ps 编辑:程序博客网 时间:2024/05/20 10:22
Plus One
我的思路:
1 自然是从后面开始判断,如果是9那么就要进位变成0,依次后面都要改变,直到不是9为止,返回数组。如果全部是9,那么就要把第一个数变成1,接着每个数变成0,然后再添加一个0。
贴出代码如下,
vector<int> AddOneDigits = digits; vector<int>::iterator i; for (i = AddOneDigits.begin(); i != AddOneDigits.end(); i++) { //这里寻找了第一个9出现的位置,没有任何必要 if (*i != 9) { for (vector<int>::iterator j = AddOneDigits.end() - 1; j >= i; --j) { //直接改变了一个数,也可以使用取余之类的方法来实现 if (*j == 9) *j = 0; else { (*j)++; return AddOneDigits; } } } } //这一大段代码可以用一个vector的插入来完成 AddOneDigits.insert(AddOneDigits.begin(), 1) if (i == AddOneDigits.end()) { *AddOneDigits.begin() = 1; for (auto k = AddOneDigits.begin() + 1; k != AddOneDigits.end(); ++k) *k = 0; AddOneDigits.push_back(0); } return AddOneDigits;最近刚开始做这些题,发现自己的思路还是非常混乱,没有什么逻辑性可言,每做一题要尽量能够有一些的提升。下面是修改代码。
vector<int> AddOneDigits = digits; vector<int>::iterator i;for (vector<int>::iterator i = AddOneDigits.end() - 1; i >= AddOneDigits.begin(); --i) {if (*i == 9)*i = 0;else {(*i)++;return AddOneDigits;}} AddOneDigits.insert(AddOneDigits.begin(), 1); return AddOneDigits;
今天遇到的两题主要的思维是:
1 逆向解决问题,通过循环来做到不满足条件的时候跳过我们要执行的代码。如数组元素去重。
今天两题到此结束。
0 0
- Plus One解题报告分析
- [LeetCode] Plus One 解题报告
- 【LeetCode】Plus One 解题报告
- LeetCode Plus One Java版解题报告
- [leetcode] 66. Plus One 解题报告
- [Leetcode] 66. Plus One 解题报告
- Leetcode 66. Plus One 加一! 解题报告
- [leetcode] 369. Plus One Linked List 解题报告
- [Leetcode] 369. Plus One Linked List 解题报告
- leecode 解题总结:66. Plus One
- leetcode解题方案--066--Plus One
- [LeetCode] Plus One 简要分析
- hdu_4374 One hundred layer解题报告
- LeetCode-Number of Digit One-解题报告
- [LeetCode]Number of Digit One,解题报告
- [leetcode] One Edit Distance 解题报告
- [Leetcode] 161. One Edit Distance 解题报告
- leetCode 66.Plus One (+1问题) 解题思路和方法
- HDoj-2082-找单词-母函数
- 从平台发过来的810消息不兼容问题
- 赵伟笔记一
- quick_find
- dmlread的精度问题
- Plus One解题报告分析
- Struts2的OGNL
- Block 回调函数
- 【转】IE命令行参数
- VS2010中 C++创建DLL图解
- Linux Module And Device Driver
- JAVA CAS原理深度分析
- 点击返回顶部的实现
- Leetcode: Pascal's Triangle II