首页 > 其他分享 >力扣2-两数之和

力扣2-两数之和

时间:2023-04-05 09:03:50浏览次数:37  
标签:ListNode val next 力扣 l2 l1 new 两数

 
 namespace Test2;
 
 // Definition for singly-linked list.
 public class ListNode {
      public int val;
      public ListNode next;
      public ListNode(int val=0, ListNode next=null) {
          this.val = val;
          this.next = next;
      }
  }
 
public class Solution3 {

    private ListNode CreateListNodeByArr(int[] arr,int index)
    {
        if(index == arr.Length - 1) return null;
        var root = new ListNode(arr[index]);
        root.next = CreateListNodeByArr(arr, index + 1);
        return root;
    }
    public void Show()
    {
        int[] arr1 = {9,9,9,9,9,9,9};
        int[] arr2 = {9,9,9,9};
        // var l1 = CreateListNodeByArr(arr1,0);
        // var l2 = CreateListNodeByArr(arr2,0);
        // 链表构造的方法。。。。。。。
        ListNode l1 = new ListNode(9);
        ListNode l1Cur = l1;
        foreach(var item in arr1)
        {
            l1Cur.next = new ListNode(item);
            l1Cur = l1Cur.next;
        }
        l1 = l1.next;

        ListNode l2 = new ListNode(9);
        ListNode l2Cur = l2;
        foreach(var item in arr2)
        {
            l2Cur.next = new ListNode(item);
            l2Cur = l2Cur.next;
        }
        l2 = l2.next;
        

        // l1.next = new ListNode(9);
        // l1.next.next = new ListNode(3);
        // ListNode l2 = new ListNode(5);
        // l2.next = new ListNode(6);
        // l2.next.next = new ListNode(4);
        var rt = AddTwoNumbers(l1, l2);
        Console.WriteLine(rt.val);

    }

    public ListNode AddTwoNumbers(ListNode l1, ListNode l2) {
        // 递推
        ListNode pre = new ListNode();
        ListNode cur = pre; // 这里的没看懂,这里使用就不会改变pre的值。
        
        var carry = (l1.val + l2.val) / 10;
        while(l1 != null || l2 != null || carry != 0)
        {
            var x = l1 == null ? 0 : l1.val;
            var y = l2 == null ? 0 : l2.val;
            var val = (x + y + carry) % 10;
            cur.next = new ListNode(val);
            cur = cur.next;
            carry = (x + y + carry) / 10;
            l1 = l1 == null ? null : l1.next;
            l2 = l2 == null ? null : l2.next;
        }
    
        return pre.next;
    }
}

 

标签:ListNode,val,next,力扣,l2,l1,new,两数
From: https://www.cnblogs.com/Insist-Y/p/17288793.html

相关文章

  • 力扣615(MySQL)-平均工资:部门与公司比较(困难)
    题目:给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资的比较结果(高/低/相同)。表:salary employee_id字段是表employee中employee_id字段的外键。 对于如上样例数据,结果为:解释在三月,公司的平均工资是(9000+6000+10000)/......
  • 力扣614(MySQL)-二级关注者(中等)
    题目:在facebook中,表follow会有2个字段:followee,follower,分别表示被关注者和关注者。请写一个sql查询语句,对每一个关注者,查询关注他的关注者的数目。比方说: 应该输出: 解释:B和D都在在follower字段中出现,作为被关注者,B被C和D关注,D被E关注。A不在......
  • 力扣-数组-滑动窗口
    题目顺序209长度最小的子数组,904水果成篮解题思路1.滑动窗口求解的题目中,关键词为”求解连续“2.暴力解法是双重for循环,相当于对滑动窗口的起始和终止点都遍历3.滑动窗口求解是,只遍历终止点,当sum符合条件时,start++,向前一步缩小窗口4.终止条件是终止点end遍历完  1c......
  • 力扣---剑指 Offer 41. 数据流中的中位数
    如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是3[2,3]的中位数是(2+3)/2=2.5设计一个支持以下......
  • 最小覆盖子串(哈希表、字符串)、两数之和(数组、哈希表)、二叉树的层序遍历 II(树、广
    最小覆盖子串(哈希表、字符串)给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。**注意:**如果s中存在这样的子串,我们保证它是唯一的答案。示例1:输入:s="ADOBECODEBANC",t="ABC"输出:"B......
  • 力扣26-2023.4.3
    力扣26-2023.4.3问题26.删除有序数组中的重复项方法思路:遍历数组,若后一个和前一个相同,则继续下一个;若后一个与前一个不同,则直接赋值。C++程序:#include<iostream>#include<vector>usingnamespacestd;intremoveDuplicates(vector<int>&nums){/*......
  • 力扣---面试题 02.01. 移除重复节点
    编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1:输入:[1,2,3,3,2,1]输出:[1,2,3]示例2:输入:[1,1,1,1,2]输出:[1,2]提示:链表长度在[0,20000]范围内。链表元素在[0,20000]范围内。进阶:如果不得使用临时缓冲区,该怎么解决?来源:力扣(LeetC......
  • 力扣612(MySQL)-平面上的最近距离(中等)
    题目:表point_2d保存了所有点(多于2个点)的坐标(x,y),这些点在平面上两两不重合。写一个查询语句找到两点之间的最近距离,保留2位小数。 最近距离在点(-1,-1)和(-1,2)之间,距离为1.00。所以输出应该为: 解题思路:建表语句:1createtableifnotexistspoint_2d(x......
  • 力扣---剑指 Offer 36. 二叉搜索树与双向链表
    输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例:   我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对......
  • 2024届计算机秋招100天备战:力扣每日打卡挑战全记录 & 面试题总结
    最近两个月力扣困难题不再落下,打卡全满勤,激发了持续刷题的斗志。这里将持续记录打卡过程中的难题和面试八股。2023/4/21039.多边形三角剖分的最低得分题目大意:多边形每个节点有一个数值,将多边形三角剖分,得分为所有三角形节点乘积之和。求三角剖分后的最低得分。做题评价:虽......