HOLA

世界无限广阔

Monotone Stack

什么是单调栈 单调栈就是一种栈内元素保持单调增或者单调减的栈,我们只在栈顶操作元素。单调栈的性质可以总结为: 单调栈里的元素具有单调性 元素加入栈前,会在栈顶把破坏栈单调性的元素都删除 单调栈如何维护其单调性 如果stack单调递增,栈顶元素大于等于新元素a: 不断 pop() 栈顶元素。 若 peek...

正则表达式

语法 ^ : 匹配输入字符串开始的位置。 $ : 匹配输入字符串的结尾位置。 () : 标记一个子表达式的开始和结束位置。 * : 匹配前面的子表达式零次或多次。 + : 匹配前面的子表达式一次或多次。 ? : 匹配前面的子表达式零次或一次。 . : 匹配除换行符 \n 之外的任何单字符。 [ : 标记一个中括号表达式的开始。 \ : 将下一个字符标记为或特殊字符、或原义字...

Error Prone VS SpotBugs

Error Prone 简介 Error Prone 是一款由Google开发的开源JAVA代码检查工具,它通过加强编译器的类型检查来匹配bug。起初Goole是想把FindBugs整合到他们的代码库里面,后来实验之后发现FindBugs是编译后生成检查报告,它不会中断编译过程,这就导致很多程序员根本不去修复检查出的bug。所以他们根据ClangMR的经验,也就是把检查过程放到编译中,按...

Breadth First Search

Minimum Height Trees class Solution { public List<Integer> findMinHeightTrees(int n, int[][] edges) { List<Integer> result = new ArrayList<>(); if (n == 0) { ret...

Binary Tree

Preorder Divide Conquer public class Solution { public ArrayList<Integer> preorderTraversal(TreeNode root) { ArrayList<Integer> result = new ArrayList<Integer>(); ...

ARIMA建模实例

之前写过一篇关于时间序列的文章,下面来说一说怎么把ARIMA算法应用的具体的dataset上,因为我在最近的Data Analytics课程作业里用到了这个算法,我就暂且用这个例子来讲讲。 数据集 数据集包括了从2004年1月1日到2008年6月1日13个不同地区每小时的气温观测值,我抽取了地区1的数据来做预测,并以每天的最高气温为研究对象。这一步要做的工作就是整理数据集,生成日期,计算每...

时间序列及其预测模型

课堂笔记 教材: Forecasting: Principles and Practice 三个基本原则 过去数据中的随机波动可以忽略掉,即异常数据 真实的数据一定会被用于建模和计算 我们假设:环境变化的方式不会随着时间改变 那么我们要预测什么呢? 每个产品的销量还是一组产品的销量 每个销售点的销量,一组销售点的销量,还是总体的销量 每小时,每天,每周还...

汇率提醒小工具

事情是这样的,因为最近深陷汇率波动的风波中,亏得要叫爸爸了,所以想有个工具可以提醒我买进卖出这样,但是看了一圈都没app有这个功能的,于是我打算自己写一个脚本来做这个事情。 需求如下: 定时刷新(1分钟为间隔) 一旦发现买入价格、卖出价格到达某个值触发通知 汇率信息发送到指定邮箱 编码 其实这个事情还是蛮简单的,首先要拿到数据,我的做法是直接访问url拿到网页源码,再用...

二叉查找树BST

BST全称是binary search tree,二叉查找树的左子树比根节点小,右子树比根节点大,而且没有键值相等的节点。这种数据结构在查找、插入等操作的时间复杂度较低,为O(logn)。 中序遍历二叉查找树可以得到一个有序序列,通过一个无序序列构造二叉查找树的过程可以看成对无序序列进行查找的过程,每次插入的节点都是二叉查找树上新的叶子节点。下文所提及的代码实现皆为python。 定义 c...

当coco奶茶成为乡愁

这次来加拿大的感受跟上次完全不一样,可能是因为东岸和西岸的差异,可能是因为心境的变化,可能是因为我对这个地方的期待是基于对温哥华的印象,结果当然是心理落差很大。 自从到这里就一堆麻烦事,诸如行李被航司空运到了英国伦敦,或者手机卡无法激活只能在机场待着,或者背包莫名其妙消失又被找到,可喜的是麻烦事总算在一件一件解决。仔细算算到这也才半月而已,总觉得像过了很久一样。 秋天快来了,下个夏天不远了...