4.4k 4 分钟

本节课讲了如何写出更简洁清晰的代码,每种语言都有自己的特性,也有自己独特的代码规范,对于 Go 来说,有哪些性能优化的手段、趁手的工具,也都进行了介绍。 高质量代码需要具备正确可靠、简洁清晰的特性 正确性:各种边界条件是否考虑完备、错误的调用能否被处理 可靠性:异常情况或错误处理明确,依赖的服务异常能够及时处理 简洁:逻辑是否简单、后续新增功能是否能够快速支持 清晰可读:其他人阅读理解代码时是否能清楚明白、重构时是否不会担心出现无法预料的情况 而这就需要编码规范。 # 编码规范 # 格式化工具 提到编码规范就不得不提到代码格式化工具,推荐使用 Go 官方提供的格式化工具 gofmt...
4.8k 4 分钟

# 并发编程 并发 是多线程程序在一个核的 cpu 上运行 并行 是多线程程序在多个核的上运行 Go 可以充分发挥多核优势,高效运行 一个重要概念 # 协程 协程的开销比线程小,可以理解为轻量级的线程,一个 Go 程序中可以创建上万个协程。 Go 中 开启协程 非常简单,在函数前面增加一个 go 关键字就可以为一个函数开启一个协程。 # CSP 与 Channel CSP(Communicating Sequential Process) Go 中提倡通过 通信共享内存 而不是通过共享内存而实现通信 那么如何通信呢,通过 channel # Channel 语法:...
7.1k 6 分钟

# 起因 今天闲逛的时候看到一个博客用的主题惊为天人: 官方配置教程: Hexo 主题 Shoka & multi-markdown-it 渲染器使用说明 🚀快速开始 -> 💌依赖插件 -> 📌基本配置 -> 🌈界面显示 -> 🦄特殊功能 过程中遇到的一些问题,有看到这个博客里提到:Hexo 博客搭建:基础配置...
7.5k 7 分钟

第三次实验因为逆波兰式比较简单所以略过 x 源代码仓库:CompilePrincipleLearning/experiment_4 · yusixian/CompilePrincipleLearning (github.com) 在 demo 文件夹中~ # 一。实验目的 掌握 LR (1) 分析法的基本原理 掌握 LR (1) 分析表的构造方法 掌握 LR (1) 驱动程序的构造方法 # 二。实验内容及要求 构造 LR (1) 分析程序,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子,了解...
2.2k 2 分钟

day31 题目:剑指 Offer 14- II. 剪绳子 II、剑指 Offer 43. 1~n 整数中 1 出现的次数、剑指 Offer 44. 数字序列中某一位的数字 知识点:数学,难度为中等、困难、中等 学习计划链接:「剑指 Offer」 - 学习计划 题目 知识点 难度 剑指 Offer 14- II. 剪绳子 II 数学、动态规划 中等 剑指 Offer 43. 1~n 整数中 1 出现的次数 递归、数学、动态规划 困难 剑指 Offer 44. 数字序列中某一位的数字 数学、二分查找 中等 最后一天了…… 被今天的数学题…… 按在地上摩擦,嘿嘿嘿 # 剑指 Offer...
1.5k 1 分钟

day30 题目:剑指 Offer 17. 打印从 1 到最大的 n 位数、剑指 Offer 51. 数组中的逆序对 知识点:数组、数学、分治,难度为简单、困难 学习计划链接:「剑指 Offer」 - 学习计划 题目 知识点 难度 剑指 Offer 17. 打印从 1 到最大的 n 位数 数组、数学 简单 剑指 Offer 51. 数组中的逆序对 树状数组、线段树、数组 困难 # 剑指 Offer 17. 打印从 1 到最大的 n 位数 输入数字  n ,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例...
3.3k 3 分钟

day29 题目:剑指 Offer 19. 正则表达式匹配、剑指 Offer 49. 丑数、剑指 Offer 60. n 个骰子的点数 知识点:字符串、数学、动态规划,难度为困难、中等、中等 学习计划链接:「剑指 Offer」 - 学习计划 题目 知识点 难度 剑指 Offer 19. 正则表达式匹配 递归、字符串、动态规划 困难 剑指 Offer 49. 丑数 哈希表、数学、动态规划 中等 剑指 Offer 60. n 个骰子的点数 数学、动态规划、概率与统计 中等 # 剑指 Offer 19. 正则表达式匹配 请实现一个函数用来匹配包含 '. ' 和...
2.4k 2 分钟

day28 题目:剑指 Offer 37. 序列化二叉树、剑指 Offer 38. 字符串的排列 知识点:树、字符串、回溯,难度为困难、中等 学习计划链接:「剑指 Offer」 - 学习计划 题目 知识点 难度 剑指 Offer 37. 序列化二叉树 树、深度优先搜索 困难 剑指 Offer 38. 字符串的排列 字符串、回溯 中等 # 剑指 Offer 37. 序列化二叉树 请实现两个函数,分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 /...
2.6k 2 分钟

day27 题目:剑指 Offer 59 - I. 滑动窗口的最大值、剑指 Offer 59 - II. 队列的最大值 知识点:队列、设计、滑动窗口,难度为困难、中等 学习计划链接:「剑指 Offer」 - 学习计划 题目 知识点 难度 剑指 Offer 59 - I. 滑动窗口的最大值 队列、滑动窗口、单调队列 困难 剑指 Offer 59 - II. 队列的最大值 设计、队列、单调队列 中等 # 剑指 Offer 59 - I. 滑动窗口的最大值 给定一个数组  nums  和滑动窗口的大小  k ,请找出所有滑动窗口里的最大值。 示例: 输入: nums =...