御坂领域


花开不同赏,花落不同悲。欲问相思处,花开花落时。

【Java随笔】日期与时间

0 条评论 默认分类 笔记 JAVA MisakaStone
Date类java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date()第二个构造函数接收一个参数,该参数是从 1970 年 1 月 1 日起的毫秒数。Date(long millisec)Tips. 起始计算时间 00:00 为格林尼治标准时间,在中国本地运行程序则会使用北...

【算法随笔】剪枝

0 条评论 默认分类 笔记 算法 MisakaStone
剪枝是一种可以提高搜索算法时间和空间效率的技巧,经过剪枝或其他策略优化过的算法在执行效率上远超一般未经剪枝的算法。例1 数的划分题目来源:P1025 NOIP2001 提高组 数的划分 - 洛谷题目描述将整数 $n$ 分成 $k$ 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:$n=7$,$k=3$,下面三种分法被认为是相同的。$1,1,5$; $1,5,1$; $5,...

【算法随笔】动态规划

0 条评论 默认分类 笔记 算法 MisakaStone
动态规划(Dynamic Programming)是计算机中解决最优化问题的一种方法,具有效率高、速度快的优点。引入一个经典的动态规划问题:给定一个无序的数组,求出最长的递增子序列的长度。例如,在 $ nums = [1,5,2,4,3] $ 中,最长子序列为 $ [1,2,3] $,长度为3。首先采用深搜来解决,代码如下:public static int dfs(int[] nums, ...

【算法随笔】记忆化搜索

0 条评论 默认分类 笔记 算法 MisakaStone
记忆化搜索可以减少重复计算。以斐波那契数列为例,简单的递归函数存在大量重复计算,时间复杂度较高,因此可以采用记忆化搜索的算法来提高计算效率。$ F(0)=1 $ $ F(1)=1 $$ F(2)=F(1)+F(0) $$ F(3)=F(2)+F(1) $$ ... $$ F(n)=F(n-1)+F(n-2) $ 代码如下Scanner keyboard = new Scanner(Syste...

【算法随笔】深度优先搜索

0 条评论 默认分类 笔记 算法 MisakaStone
深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。1 全排列给定一个字符数组,对所有元素进行全排列并逐行输出。DFS函数,详解见注释: /** * The dfs function to achieve the full permutation of th...