每日OJ题_牛客_NC40链表相加(二)_链表+高精度加法_C++_Java

news2024/9/29 13:27:59

目录

牛客_NC40链表相加(二)_链表+高精度加法

题目解析

C++代码

Java代码


牛客_NC40链表相加(二)_链表+高精度加法

链表相加(二)_牛客题霸_牛客网


题目解析

模拟⾼精度加法的过程,只不过是在链表中模拟。

C++代码

/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) : val(x), next(nullptr) {}
* };
*/
class Solution {
    public:
    /**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head1 ListNode类
* @param head2 ListNode类
* @return ListNode类
*/
    ListNode* addInList(ListNode* head1, ListNode* head2) {
        string s, t;
        while(head1)
        {
            s += head1->val + '0';
            head1 = head1->next;
        }
        while(head2)
        {
            t += head2->val + '0';
            head2 = head2->next;
        }
        string res = solve(s, t);
        // cout << res;
        if(res.size() == 0)
        {
             return nullptr;
        }
        ListNode* cur;
        cur = new ListNode(res[0] - '0');
        ListNode* ret = cur;
        for(int i = 1; i < res.size(); ++i)
        {
            ListNode* tmp = new ListNode(res[i] - '0');
            cur->next = tmp;
            cur = cur->next;
        }
        cur->next = nullptr;
        return ret;
    }
    string solve(string s, string t) {
        int end1 = s.size() - 1, end2 = t.size() - 1;
        string ret;
        int carry = 0;
        while(end1 >= 0 || end2 >= 0)
        {
            int val1 = end1 >= 0 ? s[end1] - '0' : 0;
            int val2 = end2 >= 0 ? t[end2] - '0' : 0;
            ret += (val1 + val2 + carry) % 10 + '0';
            if(val1 + val2 + carry > 9)
            {
                carry = 1;
            }
            else
            {
                carry = 0;
            }
            --end1;
            --end2;
        }
        if(carry)
        {
            ret += '1';
        }
        reverse(ret.begin(), ret.end());
        return ret;
    }
};

Java代码

import java.util.*;
public class Solution
{
    // 逆序链表
    public ListNode reverse(ListNode head)
    {
        ListNode newHead = new ListNode(0);
        ListNode cur = head;
        while(cur != null)
        {
            ListNode next = cur.next;
            cur.next = newHead.next;
            newHead.next = cur;
            cur = next;
        }
        return newHead.next;
    }
    public ListNode addInList (ListNode head1, ListNode head2)
    {
        // 1. 逆序
        head1 = reverse(head1);
        head2 = reverse(head2);
        // 2. ⾼精度加法
        ListNode cur1 = head1, cur2 = head2;
        int t = 0;
        ListNode ret = new ListNode(0), prev = ret;
        while(cur1 != null || cur2 != null || t != 0)
        {
            if(cur1 != null)
            {
                t += cur1.val;
                cur1 = cur1.next;
            }
            if(cur2 != null)
            {
                t += cur2.val;
                cur2 = cur2.next;
            }
            prev = prev.next = new ListNode(t % 10);
            t /= 10;
        }
        return reverse(ret.next);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2168209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

107.WEB渗透测试-信息收集-FOFA语法(7)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;106.WEB渗透测试-信息收集-FOFA语法&#xff08;6&#xff09; 密码文件&#xff1a; 语…

MFC设置特定控件字体大小和背景颜色

MFC设置特定控件字体大小和背景颜色 初始化函数里 m_editFont.CreatePointFont(580 , _T("宋体"));m_ctrlEdit.SetFont(&m_editFont);重写消息 HBRUSH CMFCTESTDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {HBRUSH hbr CDialogEx::OnCtlColor(pDC,…

Calcite第一课

Calcite 是什么&#xff1f; 2024 年 9 月&#xff0c;最新版本 1.37.0 。前面三节我们先不看任何的源码&#xff0c;只从背景、介绍、概念、原理层面入手&#xff0c;作为深入学习和源码分析的预备。 如果用一句话形容 Calcite&#xff0c;Calcite 是一个用于优化异构数据源的…

最全测评!分享7款超好用的AI论文润色网站

在当前的学术写作领域&#xff0c;AI论文润色工具已经成为提升论文质量和效率的重要助手。以下是七款超好用的AI论文润色网站&#xff0c;其中特别推荐千笔-AIPassPaper。 一、千笔-AIPassPaper 是一款集论文大纲生成、内容填充、文献引用、查重修改于一体的全方位论文写作平…

友思特“未来视界”趣味实验室 | 第2讲:中草药的高光谱成像

第2讲 ——当中药遇上高光谱系统 友思特“未来视界”实验室第二讲开课了&#xff01;本期主角是凝结了中国古老智慧的特色——中药。 从神农尝百草到《本草纲目》典籍问世&#xff0c;中药材发展至今&#xff0c;品类已高达上万种。在这其中&#xff0c;难免会存在形态相似而…

曲面构件的布尔运算

1.前言 布尔运算算法有多种&#xff0c;可以根据几何数据表达方式分为Brep布尔运算、CSG布尔运算、网格布尔运算等&#xff0c;而网格布尔运算又又多种&#xff0c;如BSP方式、八叉树方式&#xff0c;博主实现过Brep布尔运算、BSP和八叉树两种网格布尔运算。详细可参考博主文章…

[NewStarCTF 2023 公开赛道]Begin of PHP1

开始代码审计. <?php error_reporting(0); highlight_file(__FILE__);if(isset($_GET[key1]) && isset($_GET[key2])){echo "Level 1<br>";if($_GET[key1] ! $_GET[key2] && md5($_GET[key1]) md5($_GET[key2])){$flag1 True;}else{die(…

依赖倒转原则(DIP)

依赖倒转原则&#xff08;DIP&#xff09;&#xff1a;Dependency Inversion Principle&#xff0c;模块之间要依赖抽象&#xff0c;不依赖实现&#xff0c;要面向接口编程&#xff0c;不要面向实现编程。高层次模块不应该直接依赖低层模块&#xff0c;这样就降低了客户端与实现…

2024.9.26 作业 +思维导图

一、作业 1、什么是虚函数&#xff1f;什么是纯虚函数 虚函数&#xff1a;函数前加关键字virtual&#xff0c;就定义为虚函数&#xff0c;虚函数能够被子类中相同函数名的函数重写 纯虚函数&#xff1a;把虚函数的函数体去掉然后加0&#xff1b;就能定义出一个纯虚函数。 2、基…

排序--堆排序【图文详解】

二叉树的相关概念 叶子&#xff1a;没有子节点的节点叫叶子节点 大根堆&#xff1a;所有的父亲大于儿子 小根堆&#xff1a;所有的儿子大于父亲 父亲于儿子的的下标关系&#xff1a; 父亲的下标为i &#xff0c;那么左孩子的下标为2*i1&#xff0c;右孩子的下标为2i2 子的下…

Fuxi:一款功能强大的跨平台渗透测试工具

关于Fuxi Fuxi是一款功能强大的跨平台渗透测试工具&#xff0c;该工具基于Python 3开发&#xff0c;支持在Linux、macOS和Windows操作系统上使用&#xff0c;具备良好的跨平台特性。在该工具的帮助下&#xff0c;广大研究人员可以轻松快速地执行渗透测试和安全研究任务。 工具…

SpringCloudEureka简介

背景 SpringCloudEureka是基于NetfliEureka做了二次封装&#xff0c;负责微服务架构的服务治理功能。 SpringCloud通过为Eureka增加SpringBoot风格的自动化配置&#xff0c;只需要简单的引入依赖和注解配置&#xff0c;就能让SpringBoot构建的微服务应用轻松和Eureka服务治理体…

SQL语言入门

一、SQL语言入门&#xff1a; 数据库管理人员&#xff08;DBA&#xff09;通过数据库管理系统&#xff08;DBMS&#xff09;可以对数据库&#xff08;DB&#xff09;中的数据进行操作 SQL是一种非过程化语言&#xff0c;只需提出“做什么”&#xff0c;而不需要指明“怎么做”…

11. LCEL:LangChain Expression Language

这篇文章覆盖了LCEL的理解和他是如何工作的。 LCEL(LangChain Expression Language)&#xff1a;是把一些有趣python概念抽象成一种格式&#xff0c;从而为构建LangChain组件链提供一种“简约”代码层。 LCEL在下面方面有着强大的支撑&#xff1a; 链的快速开发流式输出、异…

C++ 刷题 使用到的一些有用的容器和函数

优先队列 c优先队列priority_queue&#xff08;自定义比较函数&#xff09;_c优先队列自定义比较-CSDN博客 373. 查找和最小的 K 对数字 - 力扣&#xff08;LeetCode&#xff09; 官方题解&#xff1a; class Solution { public:vector<vector<int>> kSmallestP…

java 解析excel (本地资源)

在Java中解析Excel文件&#xff0c;可以使用Apache POI库。以下是一个简单的例子&#xff0c;展示如何使用Apache POI读取一个Excel文件&#xff08;假设为.xlsx格式&#xff09;的内容。 首先&#xff0c;确保你的项目中包含了Apache POI的依赖。如果你使用Maven&#xff0c;…

绝了,自从用了它,我每天能多摸鱼2小时!

大家好&#xff0c;我是可乐。 俗话说的好&#xff1a;“摸鱼一时爽&#xff0c;一直摸鱼一直爽”。 作为一个程序员&#xff0c;是否有过调试代码熬到深夜&#xff1f;是否有过找不到解决方案而挠秃头顶&#xff1f; 但现在你即将要解放了&#xff0c;用了这款工具——秘塔…

【PWN · HOO | HOF | Tcache pthread struct】[2024 · ByteCTF] ezheap

在学习了一段时间堆后&#xff0c;终于能较为从容、有思路地做题了 目录 前言 一、题目 二、总体思路 三、攻击过程调试 &#xff08;1&#xff09;House of Orange &#xff08;2&#xff09;House of Force tcache pthread struct attack 四、EXP 总结 前言 做完…

Maya没有Arnold材质球

MAYA 没有Arnold材质球_哔哩哔哩_bilibili

OJ在线评测系统 前端 完善题目提交服务 细讲异步前端请求与后端接口交互

题目提交服务完善 这则笔记是我们来梳理一下前后端逻辑 主要是我们的提交逻辑 先是看前端 按钮绑定的是这个异步请求 async 关键字表示这个函数内部会使用 await 来等待异步操作完成。 异步提交表单数据 const doSubmit async () > {// message.error("刷题机架构…