Java OptionalOptional类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引入的一个同名Optional类,Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。 2019-10-21 后端 #Java Optional
Java Atomic简介所谓Atomic,翻译过来就是原子。原子操作一般都是底层通过CPU的指令来实现。而atomic包下的这些类,则可以让我们在多线程环境下,通过一种无锁的原子操作来实现线程安全。 2019-10-16 后端 #Java Atomic
LeetCode刷题:贪心、分治、回溯和动态规划贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。动态规划是运筹学的一 2019-09-09 LEETCODE #贪心 #分治 #回溯 #动态规划
LeetCode刷题:图图是表示物件与物件之间的关系的数学对象,是图论的基本研究对象。一个不带权图中若两点不相邻,邻接矩阵相应位置为0,对带权图(网),相应位置为∞。 2019-09-06 LEETCODE #图
LeetCode刷题:散列表和字符串散列表的核心是散列函数和冲突解决算法,以及装载因子过大时如何扩容。字符串是编程中一定会出现的问题,变种非常多,反转,反转单词,字串,最长字串,最长子序列等等,有时解决问题需要多种数据结构与算法的结合。 2019-09-04 LEETCODE #散列表 #字符串
LeetCode刷题:排序和二分查找排序和二分查找作为经典的算法,各种编程语言内置的标准库都包含排序算法的实现,基本没有自己动手实现的必要。但是自己实现一遍,分析分析时间空间复杂度对自己的算法设计大有裨益。 2019-09-02 LEETCODE #排序 #二分查找