ARTS-8

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

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

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

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

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

Algorithm(算法)

leetcode 958 完全二叉树的判断

https://leetcode-cn.com/problems/check-completeness-of-a-binary-tree/

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
/**
* @Description https://www.youtube.com/watch?v=xxIpSooeZfQ
* @Author Gao Hang Hang
* @Date 2019-11-06 00:20
**/
public class Solution {
/*
思路:
bfs 广度优先
left -> right 一旦 null,后面全 null
时间复杂度:O(N),因为遍历了二叉树
空间复杂度:O(N),使用Queue
*/
public boolean isCompleteTree(TreeNode root) {
// corner case
if (root == null) return true;
// 是否遇到过空节点,true:遇到过null,false:没遇到过null
boolean end = false;
Queue<TreeNode> q = new LinkedList<>();
// offer 添加一个元素并返回true 如果队列已满,则返回false
q.offer(root);
while (!q.isEmpty()) {
// left -> right
TreeNode node = q.poll(); // poll 移除并返问队列头部的元素 如果队列为空,则返回null
// null
if (node == null) {
end = true;
} else { // not null
if (end) return false;
// 添加左节点
q.offer(node.left);
// 添加右节点
q.offer(node.right);
}
}
return true;
}
}

Review(点评)

Tip(技巧)

url命名

https://blog.csdn.net/belalds/article/details/80060296

https://xovel.cn/article/naming-rule.html

https://blog.csdn.net/ideality_hunter/article/details/82109940

https://juejin.im/entry/584a1ae761ff4b0058d08bf1

脊柱命名法(spinal-case)
脊柱命名法是使用连字符 “-“ 分割单词的一种蛇形命名法的变体. 它的优点与缺点跟蛇形命名法非常相似, 只是有项例外是有的语言不允许使用连字符用来定义符号名称 (例如声明变量,class起名或函数命名时). 你可能会发现它参考了lisp命名的写法,因为lisp方言就是这么做的. 这种命名法也是Unix和Linux系统中传统的文件夹命名方式. 例如: spinal-case, current-user, 等等.

根据文档 RFC3986 规定, URL是大小写敏感的 (除了主机头等信息).
实际情况中,大小写敏感问题可能会对在Windows环境托管的API导致出现问题.

所以建议使用脊柱命名法(spinal-case) ( RFC3986 文档中突出强调了这一点), 这种命名法也被 Google, PayPal 和其他大公司使用.

Share(分享)

《阿里巴巴 Java 开发手册》第五章MySQL数据库解读

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

请我喝杯咖啡吧~

支付宝
微信