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

网站慢用台服务器做跳板电子商务网站的建设与规划书

网站慢用台服务器做跳板,电子商务网站的建设与规划书,做网站用什么面板好,济南做网站哪家公司好🦄个人主页:修修修也 🎏所属专栏:刷题 ⚙️操作环境:牛客网 目录 一.NC1 大数加法 题目详情: 题目思路: 解题代码: 二.NC40 链表相加(二) 题目详情: 题目思路: 解题代码: 三.NC10 大数乘法 题目详情: 题目思路: 解题代码: 结语 一.NC1 大数加法 牛客网题…

🦄个人主页:修修修也

🎏所属专栏:刷题

⚙️操作环境:牛客网


目录

一.NC1 大数加法

题目详情:

题目思路:

解题代码:

二.NC40 链表相加(二)

题目详情:

题目思路:

解题代码:

三.NC10 大数乘法

题目详情:

题目思路:

解题代码:

结语


一.NC1 大数加法

牛客网题目链接(点击即可跳转):NC1 大数加法

题目详情:

本题详情如下图:


题目思路:

本题解题思路如下:

        模拟小学列竖式加法即可,但是要注意进位和两个字符串的处理,可以写成一个循环逻辑走完的就不要分两步分多种情况讨论了.对情况的处理要尽量泛化,不要只思考到局部的情况就单拎出来写一个模块,实际上是存在共性的,多思考共性,会让代码和思路都简单不少.

        步骤越繁琐越容易出错,并且越不容易找到问题在哪里.


解题代码:

本题解题代码如下:

class Solution 
{
public:string solve(string s, string t) {string ret;int i=s.size()-1,j=t.size()-1;int tmp = 0;while(i>=0 || j>=0 || tmp)  //任意一个不为0就一直加{if(i>=0) tmp +=s[i]-'0';if(j>=0) tmp +=t[j]-'0';ret+=(tmp%10+'0');tmp/=10;i--;j--;}reverse(ret.begin(),ret.end());return ret;}
};

二.NC40 链表相加(二)

牛客网题目链接(点击即可跳转):NC40 链表相加(二)

题目详情:

本题详情如下图:


题目思路:

本题解题思路如下:

        本题解题我们要思考如何取链表尾部的数据逐一相加. 因为大数加法的底层逻辑都是类似于上面一题那样模拟小学列竖式算加法, 但是对于链表而言每次取尾部的结点非常麻烦,那自然我们就想到需要先将链表逆序一下,然后再参照大数相加的方法相加. 所以本题解题步骤分为两步, 首先将两个相加链表逆置, 然后逐一取下结点相加,相加的结果结点再头插到返回的链表中(这样保证返回的链表是正序,或者尾插进去再逆置也是可以的).


解题代码:

本题解题代码如下:

#include <algorithm>
class Solution 
{
public://链表逆序ListNode* reverse(ListNode* head){ListNode* newHead = new ListNode(0);ListNode* cur = head;while(cur!=nullptr){//头插cur结点进newHeadListNode* tmp = cur->next;cur->next=newHead->next;newHead->next=cur;cur=tmp;}return newHead->next;}ListNode* addInList(ListNode* head1, ListNode* head2) {ListNode* ret = new ListNode(0);//难点在找尾,那逆序不就好了^_^head1=reverse(head1);head2=reverse(head2);ListNode* cur3 = ret;//相加逻辑int tmp=0;while(head1!=nullptr||head2!=nullptr||tmp){if(head1!=nullptr){tmp+=head1->val;head1=head1->next;}if(head2!=nullptr){tmp+=head2->val;head2=head2->next;}//结果结点头插进新链表ListNode* newnode = new ListNode(tmp%10);newnode->next=cur3->next;cur3->next=newnode;tmp/=10;}return ret->next;}
};

三.NC10 大数乘法

牛客网题目链接(点击即可跳转):NC10 大数乘法

题目详情:

本题详情如下图:


题目思路:

本题解题思路如下:

        我们先用无进位相乘分别算出每一位数字相乘后的结果,将他们同位的值相加,然后最后再把无进位相乘的结果汇总为一个字符串,返回即可(注意返回前消灭前导0),具体看下图:


解题代码:

本题解题代码如下:

class Solution 
{
public:string solve(string s, string t) {string ret;//无进位相乘vector<int> tmp;tmp.resize(s.size()+t.size(),0);for(int i=s.size()-1;i>=0;i--){for(int j=t.size()-1;j>=0;j--){tmp[i+j]+=(s[i]-'0')*(t[j]-'0');}}//把每位乘的汇总相加,乘完是逆序的哈int c=0;int i=tmp.size()-1;while(i>=0||c){if(i>=0) c+=tmp[i];ret+=(c%10+'0');c=c/10;i--;}//消灭前导零while(ret[0]=='0' && ret.size()>1){ret.erase(ret.begin());}  reverse(ret.begin(),ret.end());return ret;}
};

结语

        说点啥好呢...少了点耐心和定力,以及很久没做过题,代码确实生疏了,链表的逆置都没法闭眼写出来,后续碰到问题还是多画图吧.多一点耐心...认真对待算法!

http://www.dtcms.com/wzjs/768023.html

相关文章:

  • 罗湖实惠的网站建设费用如何为网站开发app
  • 可信网站认证费用网站虚拟主持
  • 静安企业网站制作成品超市网站
  • 手机网站怎么打开wordpress主题怎么设置
  • 怎样创建网站挣钱东莞加盟网站建设
  • 小公司怎么做网站腾讯云网站建设教学视频
  • 淘宝客网站开发 猪八戒wordpress 邮件找客户端
  • 网站页面footer的copy如何给网站做外链
  • 做ppt到哪个网站找图片mysql网站开发
  • 做游戏网站有几个要素重庆seo网站
  • 做外贸soho网站的公司广东网站建站公司
  • 如何建立优秀企业网站店标在线制作免费
  • 小程序定制开发深圳seo泛目录培训
  • 专业的论坛网站建设WordPress好看的博客主题有哪些
  • 专门下载工程建设标准的网站网站建设视频直播功能表
  • 甘肃营销型网站制作长葛哪里有做网站的
  • 网站个人备案类型网站设计 网络推广的服务内容
  • 网站正建设中wordpress小程序后台
  • 商城网站建设特点有哪些淮阴区城乡建设局网站
  • 私有云网站建设网站图片优化怎么做
  • 意识形态网站建设个人网页设计作品手绘
  • 建设网站的书籍wordpress插件开发教程 pdf
  • 国家住房和城乡建设局网站首页小程序商城图标素材
  • 做网站开发白云区网站开发公司电话
  • 皮革材料做网站百度云搜索引擎入口盘搜搜
  • 深圳做企业网站的公司网站做百度推广有没有效果
  • 德州谁会做网站广告公司名字三个字
  • 广州最专业的网站建设wordpress积分阅读
  • 网站内容 优化哈尔滨做平台网站平台公司哪家好
  • 百度山西网站建设和百度推广做优化排名会不会影响网站速度