秋招突击——算法打卡——5/28——复习{Z字形变换、两数之和}——新做:{整数反转、字符串转整数}
文章目录
- 复习
- Z字形变换
- 实现代码
- 参考代码
- 两数之和
- 复习代码
- 新作
- 整数反转
- 个人实现
- 实现代码
- 参考做法
- 字符串转换整数
- 个人解法
- 分析总结
复习
Z字形变换
实现代码
- 这里使用了他的思想,但是没有用他的代码,虽然已经比上次简洁了,但是还是不够,在学习一下他的代码!
string convert(string s,int numRows){ string res[numRows]; string r ; if (numRows == 1 ) return s; for (int i = 0; i参考代码
string convert(string s,int n){ string r ; if (n == 1 ) return s; // 分别遍历一下numRows还有整个字符串 for (int i = 0; i两数之和
- 这题很清晰,就是模拟两个数字的相加过程,需要注意的是,就是三个数相加,分别是节点1、节点2、还有addNum,有一个不为空,就继续往上加
复习代码
注意
- 创建一个临时头节点,方便操作
- 操作指针,要判定当前指针是否为空
- 指针记得向后移动
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { auto dummy = new ListNode(),cur = dummy; int addNum = 0; while(l1 || l2 || addNum){ if(l1) addNum += l1->val ,l1 = l1->next; if(l2) addNum += l2->val ,l2 = l2->next; cur->next = new ListNode(addNum % 10); cur = cur->next; addNum = addNum / 10; } return dummy->next; }新作
整数反转
个人实现
- 因为int类型存储有限,所以想的是直接使用string类型的数据进行处理,就不用担心对应的超范围问题,然后使用stoi函数。同时超过范围的检测,也是使用string进行遍历检测。
不过,今天又是一遍过!
实现代码
int reverse(int x){ bool isPos = x m[i] ) return 0; if (s[i]参考做法
-
通过求余10,来获取当前的位数,然后通过乘以10,来变成对应的数字
-
如果不能存储超过范围的数字,那就通过因式变化实现。
- 下述想法实现的确实比我的简洁很多,而且操作字符串,确实比操作数字要慢很多。
- 字符串底层实现reverse的时间复杂度是,底层是通过反转迭代器来实现的,双指针同时遍历,所以时间复杂度是O(n),和这个算法差不多,只不过我有多遍历了一次判定是否越界。
- 如果会溢出,就变换形态。
int reverse(int x){ int r = 0; while (x){ if (r > 0 && r > (INT_MAX - x % 10) / 10) return 0; if (r字符串转换整数
题目链接
个人解法
- 单纯逐个遍历,然后根据不同的情况进行不同的操作,执行效果如下。逻辑比较松散,需要看看官方思路是怎么做的,会不会完整一点。
class Solution { public: int myAtoi(string s){ bool numFlag = false,sigFlag = false; int r = 0 ,sig = 1; for (int i = 0; i (INT_MAX - num) / 10){ if (sig == 1) return INT_MAX; else return INT_MIN; } r = r * 10 + num; } // 非数字,直接退出,并返回已经拼接成的数字 else break; // s } return r * sig; } };分析总结
- 时间来不及了,今天就不看官方参考了,明天要准备面试了!
- 单纯逐个遍历,然后根据不同的情况进行不同的操作,执行效果如下。逻辑比较松散,需要看看官方思路是怎么做的,会不会完整一点。
- 下述想法实现的确实比我的简洁很多,而且操作字符串,确实比操作数字要慢很多。
-
- 因为int类型存储有限,所以想的是直接使用string类型的数据进行处理,就不用担心对应的超范围问题,然后使用stoi函数。同时超过范围的检测,也是使用string进行遍历检测。
- 这题很清晰,就是模拟两个数字的相加过程,需要注意的是,就是三个数相加,分别是节点1、节点2、还有addNum,有一个不为空,就继续往上加
- 这里使用了他的思想,但是没有用他的代码,虽然已经比上次简洁了,但是还是不够,在学习一下他的代码!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!









