当前位置: 首页 > news >正文

网站建设:上海珍岛备案名 网站名

网站建设:上海珍岛,备案名 网站名,seo推广培训班,wordpress升级说版本低文章目录 复习Z字形变换实现代码参考代码 两数之和复习代码 新作整数反转个人实现实现代码 参考做法字符串转换整数个人解法 分析总结 复习 Z字形变换 实现代码 这里使用了他的思想,但是没有用他的代码,虽然已经比上次简洁了,但是还是不够&…

文章目录

    • 复习
      • Z字形变换
        • 实现代码
        • 参考代码
      • 两数之和
        • 复习代码
    • 新作
        • 整数反转
          • 个人实现
            • 实现代码
        • 参考做法
        • 字符串转换整数
        • 个人解法
      • 分析总结

复习

Z字形变换


在这里插入图片描述
在这里插入图片描述

实现代码
  • 这里使用了他的思想,但是没有用他的代码,虽然已经比上次简洁了,但是还是不够,在学习一下他的代码!
 string convert(string s,int numRows){string res[numRows];string r ;if (numRows == 1 )  return s;for (int i = 0; i < s.size(); ++i) {if (i % (2 * numRows - 2) == 0)res[0] += s[i];if(i % (2 * numRows - 2) == (numRows - 1))res[numRows - 1] += s[i];else{for (int j = 1; j < numRows - 1; ++j) {if(i % (2 * numRows - 2) == j || i % (2 * numRows - 2) == (2 * numRows - 2 - j))res[j] += s[i];}}}for (int i = 0; i < numRows; ++i) {r += res[i];}return r;}
参考代码
 string convert(string s,int n){string r ;if (n == 1 )  return s;// 分别遍历一下numRows还有整个字符串for (int i = 0; i < n; ++i) {if(i == 0 || i == n - 1)for (int j = i; j < s.size(); j += (2 * n -2)) {r += s[j];}   elsefor (int j = i,k = 2 * n - 2 - i; j < s.size() || k < s.size();j += (2 * n -2) , k += (2 * n -2)) {if(j < s.size()) r += s[j];if(k < s.size()) r += s[k];}}return r;}

两数之和

  • 这题很清晰,就是模拟两个数字的相加过程,需要注意的是,就是三个数相加,分别是节点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 < 0 ? false:true;string s = to_string(abs(x));std::reverse(s.begin(), s.end());// 判定反转后的数字是否超过范围string m = to_string((int)pow(2,31) - 1);if (s.size() == m.size()){for (int i = 0; i < m.size(); i ++) {if (s[i] > m[i] )   return 0;if (s[i] < m[i])  break;}}if (isPos)return stoi(s);elsereturn 0- stoi(s);}
参考做法
  • 通过求余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 < 0 && r < (INT_MIN - x % 10) / 10) return 0;r = r * 10 + x % 10;x /= 10;}return r;
}
字符串转换整数

题目链接
在这里插入图片描述

个人解法
  • 单纯逐个遍历,然后根据不同的情况进行不同的操作,执行效果如下。逻辑比较松散,需要看看官方思路是怎么做的,会不会完整一点。
    在这里插入图片描述
class Solution {
public:int myAtoi(string s){bool numFlag = false,sigFlag = false;int r = 0 ,sig = 1;for (int i = 0; i < s.size(); ++i) {// 去除前导空格if (s[i] == ' ' &&  r == 0) {if(numFlag || sigFlag) break;continue;}// 判定是否是正负号if (s[i] == '-' &&  r == 0 && !sigFlag) {if (numFlag)    break;sigFlag = true;sig = -1;continue;}if (s[i] == '+' &&  r == 0 && !sigFlag) {if (numFlag)    break;sigFlag = true;sig = 1;continue;}// 跳过开头的零if (s[i] == '0' &&  r == 0)  {numFlag = true;continue;}// 获取数字if (s[i] <= '9' && s[i] >= '0')    {numFlag = true;// 需要判定是否会发生越界int num = s[i] - '0';if ( r > (INT_MAX - num) / 10){if (sig == 1) return INT_MAX;else return INT_MIN;                }r = r * 10 + num;}// 非数字,直接退出,并返回已经拼接成的数字else    break;// s}return r * sig;
}
};

分析总结

  • 时间来不及了,今天就不看官方参考了,明天要准备面试了!
http://www.yayakq.cn/news/668312/

相关文章:

  • 东莞网站建设功能与做网站的人怎么谈判
  • 忘记网站后台账号电脑版浏览器入口
  • 潍坊网站建设策划方案网络推广团队分工
  • 网站中搜索栏怎么做手机制作海报
  • 网站开发经验与教训网站免费做链接
  • 唐山路北网站建设jsp做的当当网站的文档
  • 网站目录管理模版如何识别一个网站是否做的好
  • 商派商城网站建设公司公司网站建设开题报告
  • 可以上传数据的网站开发高唐做网站建设公司
  • 无锡网站制作优化推广公司怎么用网吧电脑做网站服务器吗
  • 做网站营销发布文章pc网站和手机网站
  • 企业网站建设需要哪些步骤深圳旅游路线设计方案
  • 自己服务器建设网站外网访问专门做推荐的网站
  • 事业网站网站建设方案自己搭建服务器违法吗
  • 前段 网站建设实例企业品牌文化建设学习网站
  • 英文网站模板cms保定网站关键词优化
  • 建设网站需要申请报告8小8x人成免费完整板
  • 山西网站建设运营公司百度网站改版
  • 自助建网站平台怎么收费网页游戏平台返利
  • wordpress建站要钱么国内好的网站建设
  • wordpress分类网站五大免费资源网站
  • 建个网站需要投资多少钱google搜索优化方法
  • 网站宽度设置昆明网络推广哪家好
  • 临沂 网站优化网上做一道题2元的网站
  • 寻花问柳-专注做一家男人的网站猪软件行业发展趋势
  • 沧州网站建设专业定制加强制度建设 信息公开 网站 专栏
  • 网站gif素材低代码前端开发平台
  • 外包网站设计百度有哪些网站可免费做软件推广
  • 高端网站开发哪家强抖音流量推广神器软件免费
  • 自适应网站是什么建站之星有手机版模板