代码重构 【Github Actions】

This commit is contained in:
github-actions[bot]
2021-07-23 15:44:19 +00:00
parent c79cac3d9c
commit f671c90754
94 changed files with 1609 additions and 2111 deletions

View File

@@ -1,12 +1,12 @@
> 如果阅读时发现错误或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
> 如果阅读时发现错误或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
>
> 感谢支持该仓库会一直维护希望对各位有一丢丢帮助
>
> 另外希望手机阅读的同学可以来我的 <u>[**公众号袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
> 另外希望手机阅读的同学可以来我的 <u>[**公众号袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
#### [面试题 02.05. 链表求和](https://leetcode-cn.com/problems/sum-lists-lcci/)
之前我们一起做了链表中的几个经典题型找到倒数第k个节点找链表中点判断链表中环的起点合并链表反转链表删除链表中重复值这些是链表中的经典问题面试中也经常会考的问题然后下面我们继续做一道链表题目也是面试中经常会考的题目链表求和问题
之前我们一起做了链表中的几个经典题型找到倒数第 k 个节点找链表中点判断链表中环的起点合并链表反转链表删除链表中重复值这些是链表中的经典问题面试中也经常会考的问题然后下面我们继续做一道链表题目也是面试中经常会考的题目链表求和问题
另外有一些小伙伴说虽然一天一道题不算多但是每天读题做题加消化稍微有点跟不上所以我打算每个周的工作日进行更新题目到周末的时候对本周的题目进行总结然后为大家再写一些别的东西下面我们一起来看一下今天的题目吧
@@ -18,23 +18,23 @@
这些数位是反向存放的也就是个位排在链表首部
编写函数对这两个整数求和并用链表形式返回结果
编写函数对这两个整数求和并用链表形式返回结果
示例1
示例 1
```java
输入(7 -> 1 -> 6) + (5 -> 9 -> 2) 617 + 295
输出2 -> 1 -> 9 912
```
示例2
示例 2
```java
输入(9 -> 9) + (9 -> 9) 99 + 99
输出8 -> 9 -> 1
```
示例3
示例 3
```java
输入(5) + (5) 5 + 5
@@ -51,7 +51,7 @@
我们应该对链表的每一位进行相加然后通过链表的和判断是否需要像下一位进行传递
就好比小时候我们用竖式进行加法一样判断两位相加是否大于10大于10则进1
就好比小时候我们用竖式进行加法一样判断两位相加是否大于 10大于 10 则进 1
了解了思路但是想完全实现代码也不是特别容易这里需要注意的三个点就是
@@ -59,17 +59,15 @@
2. 需要创建一个变量用来保存进位值
3. 当跳出循环之后需要根据进位值来判断需不需要再对链表长度加1
3. 当跳出循环之后需要根据进位值来判断需不需要再对链表长度加 1
这三条可以结合代码理解进行
进位值只能是0或1因为每一位最大为99+9=18
进位值只能是 0 1因为每一位最大为 99+9=18
![链表求和](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/photo/链表求和.1yh4ymdee3k0.gif)
这里需要注意得时链表遍历结束我们应该跳出循环但是我们的 nlist 仍在尾部添加了1节点那是因为跳出循环时summod 值为1所以我们需要在尾部再添加一个节点
这里需要注意得时链表遍历结束我们应该跳出循环但是我们的 nlist 仍在尾部添加了 1 节点那是因为跳出循环时summod 值为 1所以我们需要在尾部再添加一个节点
**题目代码**
@@ -93,7 +91,7 @@ class Solution {
//更新进位值例18/10=19/10=0
summod = sum/10;
//新节点保存的值18%8=2则添加2
sum = sum%10;
sum = sum%10;
//添加节点
tempnode.next = new ListNode(sum);
//移动指针
@@ -103,7 +101,7 @@ class Solution {
}
if (l2 != null) {
l2 = l2.next;
}
}
}
//最后根据进位值判断需不需要继续添加节点
if (summod != 0) {
@@ -135,7 +133,7 @@ public:
//更新进位值例18/10=19/10=0
summod = sum / 10;
//新节点保存的值18%8=2则添加2
sum = sum % 10;
sum = sum % 10;
//添加节点
tempnode->next = new ListNode(sum);
//移动指针
@@ -145,7 +143,7 @@ public:
}
if (l2 != nullptr) {
l2 = l2->next;
}
}
}
//最后根据进位值判断需不需要继续添加节点
if (summod != 0) {
@@ -159,39 +157,39 @@ public:
JS Code:
```js
var addTwoNumbers = function(l1, l2) {
//待会儿要返回的链表
let nList = new ListNode(-1);//哑节点
let tempnode = nList;
//用来保存进位值初始化为0
let summod = 0;
while (l1 || l2) {
//如果l1的链表为空则l1num为0若是不为空则为链表的节点值
//判断是否为空为空就设为0
let l1num = l1 === null ? 0 : l1.val;
let l2num = l2 === null ? 0 : l2.val;
//将链表的值和进位值相加,得到为返回链表的值
let sum = l1num + l2num + summod;
//更新进位值例18/10=19/10=0
summod = ~~(sum / 10);
//新节点保存的值18%8=2则添加2
sum = sum % 10;
//添加节点
tempnode.next = new ListNode(sum);
//移动指针
tempnode = tempnode.next;
if (l1) {
l1 = l1.next;
}
if (l2) {
l2 = l2.next;
}
var addTwoNumbers = function (l1, l2) {
//待会儿要返回的链表
let nList = new ListNode(-1); //哑节点
let tempnode = nList;
//用来保存进位值初始化为0
let summod = 0;
while (l1 || l2) {
//如果l1的链表为空则l1num为0若是不为空则为链表的节点值
//判断是否为空为空就设为0
let l1num = l1 === null ? 0 : l1.val;
let l2num = l2 === null ? 0 : l2.val;
//将链表的值和进位值相加,得到为返回链表的值
let sum = l1num + l2num + summod;
//更新进位值例18/10=19/10=0
summod = ~~(sum / 10);
//新节点保存的值18%8=2则添加2
sum = sum % 10;
//添加节点
tempnode.next = new ListNode(sum);
//移动指针
tempnode = tempnode.next;
if (l1) {
l1 = l1.next;
}
//最后根据进位值判断需不需要继续添加节点
if (summod !== 0) {
tempnode.next = new ListNode(summod);
if (l2) {
l2 = l2.next;
}
return nList.next;//去除哑节点
}
//最后根据进位值判断需不需要继续添加节点
if (summod !== 0) {
tempnode.next = new ListNode(summod);
}
return nList.next; //去除哑节点
};
```
@@ -239,11 +237,11 @@ class Solution {
var nList = ListNode(-1) // 哑节点
var tempnode = nList
// 用来保存进位值初始化为0
var summod = 0
var summod = 0
while l1 != nil || l2 != nil {
// 链表的节点值
let l1num = l1?.val ?? 0
let l2num = l2?.val ?? 0
let l1num = l1?.val ?? 0
let l2num = l2?.val ?? 0
// 将链表的值和进位值相加,得到为返回链表的值
var sum = l1num + l2num + summod
// 更新进位值例18/10=19/10=0