ARTS-5

ARTS是由左耳朵耗子陈皓在极客时间专栏《左耳听风》中发起的一个每周学习打卡计划。

1
2
3
4
5
6
7
Algorithm:至少做一个 LeetCode 的算法题。主要为了编程训练和学习。

Review :阅读并点评至少一篇英文技术文章。主要为了学习英文,如果你英文不行,很难成为技术高手。

Tip:学习至少一个技术技巧。主要是为了总结和归纳你日常工作中所遇到的知识点。

Share:分享一篇有观点和思考的技术文章。主要为了输出你的影响力,能够输出你的价值观。

Algorithm(算法)

leetcode 25 每k个一组翻转链表

递归

视频地址: https://www.youtube.com/watch?v=DryIN7iL4pA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class Solution {

/*
给定这个链表:1->2->3->4->5

当 k = 2 时,应当返回: 2->1->4->3->5

当 k = 3 时,应当返回: 3->2->1->4->5

1->2->3->4->5
count = 0 cur = 1;
count = 2 cur = 3;
3->4->5
count = 2 cur = 5
5->null

时间复杂度: O(n)
*/
public ListNode reverseKGroup(ListNode head, int k) {
// 判断边界条件
if (head == null || head.next == null) return head;
int count = 0;
ListNode cur = head;
// 如果 cur 不为空且 count 不等与 k继续循环
while (cur != null && count != k) {
cur = cur.next;
count++;
}
if (count == k) {
// 递归
cur = reverseKGroup(cur, k);
while (count-- > 0) {
ListNode temp = head.next; // 存储下一个节点
head.next = cur; // 将当前节点的next域指向前一个节点
cur = head; // prev 指针向后移动
head = temp; // curr 指针向后移动
}
head = cur;
}
// 5 -> null
return head;
}
}

Review(点评)

糟糕程序员的5个不良习惯(翻译)

糟糕程序员的5个不良习惯

  1. 我的代码是最好的。
  2. 我可以一蹴而就
  3. 我记得一切。我不需要记录
  4. 不是我!
  5. 你的“完成”并不是完成

Tip(技巧)

DTO 或 DO 转换为VO

1
2
3
4
5
6
7
8
9
10
if (Objects.isNull(AccountList)) {
return null;
}

List<AccountVO> AccountVOList = new ArrayList<>();
for (Account Account : AccountList) {
AccountVO AccountVO = new AccountVO();
BeanUtils.copyProperties(Account, AccountVO);
AccountVOList.add(AccountVO);
}

Share(分享)

工具推荐 1: Postman-最常用的接口测试工具

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 高行行
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信