亚雄的博客

The LORD is my shepherd; I shall not want.

Github博客写作

为什么使用Github博客

前言 偶然在网上搜博客搭建,就发现了 qiubaiying 经典教程,就果断决定来操作下。 原来的博客需要花时间迁移过来,现在也还是处于学习阶段。 为什么要迁徙到Github博客呢?请看正文。 正文 静态博客是指主要提供静态文本,而不提供复杂的函数功能服务的博客。这其实已经满足了大部分人的要求,毕竟写文章才是博客的核心。 博文的内容也无非就是技术总结,生活感悟,想法等。对我来说,...

Java知识实践—基础篇(四)

笔记

此篇总结Java的多线程。 https://www.bilibili.com/video/av11076511/ 多线程分三大块:同步和通信、同步容器、线程池。 JAVA线程之间通信主要靠的是共享内存。 一、基本概念 多线程底层原理简单理解 多线程实现类似多进程实现,多线程实现了并发的执行某个进程内多段代码逻辑,且可以共享进程的一些资源。线程之间是调度算法来切换的,在cpu只有一个核的...

Java知识实践—基础篇(二)

笔记

介绍Java常用类使用方法。 Long类 Long的最大值是2^63 - 1,接近小数点后18个0。 Long的乘法有个非常难察觉的错误: 例如:long l = 10000 * 10000000,那么结果l将不等于10^11。问题在于Java把10000和10000000作为int,所以进行了int的乘法, 溢出后转为int,然后赋值给long。 正确写法是:long l = (...

Java知识实践—基础篇(一)

笔记

本篇总结Java的编程环境和基础语法。 一、编程环境工具 JRE JRE = JVM+ API JRE运行程序时候的主要三项功能: (1)class loader加载代码 (2)bytecode verifier校验代码 (3)runtime interpreter执行代码 JDK JDK = JRE + Tools(工具包括编译器javac.exe,执行器java.exe,文档...

Leetcode按题目类型总结(十九)

线段树(Segment Tree)和树状数组(Binary Indexed Tree)

所有代码详见:https://github.com/jingminglake/Leetcode 总体思路 线段树: https://www.youtube.com/watch?v=e_bK-dgPvfM&t=932s&ab_channel=%E9%BB%84%E6%B5%A9%E6%9D%B0 线段树看起来的样子:区间{1, 16}的线段树,root节点(第0层)...

Leetcode按题目类型总结(十八)

数学类

所有代码详见:https://github.com/jingminglake/Leetcode 总体思路 思路是看出问题的数学本质,找到合适方便的公式。然后,理清楚一步步计算的数学思路,并模拟实现为代码。 常用的数学计算编程方法: 判断四个点能否组成矩形 先任意取三个点,看看能不能构造成直角三角形,然后计算第四个点是否是矩形缺的那个点就可以了。 看能否构造直角三角形...

Leetcode按题目类型总结(十六)

系统设计

所有代码详见:https://github.com/jingminglake/Leetcode 534. Design TinyURL 题意:需要在长url和短url之间进行变换,设计两个接口,一个是long2short,另一个是short2long。 解:使用两张hash表进行保存双向的映射。在处理长变短的时候,去生成,生成完之后,保存双向关系。 关于生成短的6位数字和字母相...

Leetcode按题目类型总结(十五)

贪心法

所有代码详见:https://github.com/jingminglake/Leetcode 总体思路 贪心的题目往往比较难,因为很难证明贪心策略是正确的。 至于贪心的解法,一般是求最优解,此时要做的不是暴力看所有的情况,而是以某个接近答案的值作为初始值,然后经过贪心的变形, 就可以变成最后的解。 具体题目 738. Monotone Increasing Digits 题意...

Leetcode按题目类型总结(十四)

分治法

所有代码详见:https://github.com/jingminglake/Leetcode 总体思路 分治法和很多其他题型有交集。 具体题目 4. Median of Two Sorted Arrays 题意:找出两个已排序数组中的总的中位数。中位数在总元素为奇数的时候取中间值,偶数时候取中间两个值的平均值。 解:先想办法求两个已排序数组(假设大小分别为m和n)中的第k小的...

Leetcode按题目类型总结(十三)

动态规划

所有代码详见:https://github.com/jingminglake/Leetcode 总体思路 动态规划适合求解的问题类型是最值类型,也就是求所有解决方案中最优的,例如最大值,最小值,最好方案情况,方案个数。 求方案个数 求解有多少个解的问题,一般是使用自上而下的方法,也就是,先拆解成可以递归解决的子问题, 然后递归返回到上一步时候,记录其中的最优答案。 ...