| by YoungTimes | No comments

面试刷题-前缀树(Trie)

Trie树,又称前缀树或字典树,是一种树形结构。典型应用是用于统计和排序大量的字符串,经常被搜索引擎系统用于文本词频统计或者自动联想搜索词等。

Trie有三个基本特征:

1)除根节点外,每一个节点都只包含一个字符;

2)从根节点到某一节点的路径上经过的字符连接起来,为该节点对应的字符串;

3)每个节点的所有子节点包含的字符都不相同。)

Trie树实现

Trie 树的结点结构

假设Trie树中存储的全部是英文字符串,英文最多有26个字母,所以TrieNode的next节点最多有26个。

TrieNode中并没有直接保存字符值,而是通过数[……]

继续阅读

Read More
| by YoungTimes | No comments

面试刷题-动态规划-求解最短路径

题目链接

https://leetcode-cn.com/problems/minimum-path-sum/

题目描述

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

示例 1:

示例 2:

题目分析

这是一个典型的动态规划的题目。每个元素对应的最小路径与其相邻元素对应的最小路径有关。

具体实现上,创建二维数组 $\textit{dp}$,与原始网格的大小相同,$\textit{d[……]

继续阅读

Read More
| by YoungTimes | No comments

tesla FSD Beta破解的开发模式

document.getElementById(“video_1”).style.height=document.getElementById(“video_1″).scrollWidth*0.76+”px”;

https://twitter.com/greentheonly/status/1336467153302810625,FSD的开发者模式,能看到更多的fsd beta内部如何运作的细节,注意右侧有决断树。

[……]

继续阅读

Read More
| by YoungTimes | No comments

面试刷题-二叉树每层的最大值

题目链接:

https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/description/

题目描述

您需要在二叉树的每一行中找到最大的值。

示例:

解题方法

1、深度优先遍历(DFS)

通过深度优先遍历,首次遍历到一个层级时直接把首次访问的值添加到最大值List中,后续再访问到该层级时,通过最大值判断更新对应该层级的最大值。

2、广度优先遍历(BFS)

逐层选取最大值,然后存储起来,作为最后的返回值。

[……]

继续阅读

Read More
| by YoungTimes | No comments

Object Detection-Mask RCNN

论文链接: https://arxiv.org/pdf/1703.06870.pdf

Mask RCNN是实现物体实例分割(Object Instance Segmentation)的通用框架。它在Faster RCNN的基础上增加了一个预测物体Mask的分支,所以Mask RCNN不仅可以预测输入图像物体的Class、Bounding Box,而且还可以生成每个物体的Mask。

Mask RCNN与Faster RCNN一样采用了two-stage的网络结构。首先,它首先从图像生成Region Proposals;然后,它预测物体的分类,调整Bounding Box的[……]

继续阅读

Read More
| by YoungTimes | No comments

Markdown向上取整和向下取整

1.向上取整 – \lceil 和 \rceil

$$ \lceil \frac{x}{2} \rceil $$Markdown语法:\lceil \frac{x}{2} \rceil

2. 向下取整 – \lfloor和\rfloor

$$\lfloor x \rfloor$$Markdown语法:\lfloor x \rfloor[……]

继续阅读

Read More
| by YoungTimes | No comments

深度学习中的Data Augmentation- Test Time Augmentation (TTA)

本文主要学习深度学习中常用的数据增强(Data Augmentation)技术以及在Keras中如何实现它。

Deep Learning中存在很多通过改变神经网络(Neural Network)的训练(Training)方式改善神经网络结果的方法,Data Augmentation是其中一种常用的方法。Data Augmentation是一种增加Training Dataset的数据量大小的方法,也是一种正则化(Regularization)技术,还可以让模型对轻微变化的输入数据更加鲁棒(Robust)。

Data Augmentation

Data Augmentation[……]

继续阅读

Read More
| by YoungTimes | No comments

curl分析在线服务性能瓶颈

curl 是一个非常优秀的网络测试工具,也是目前使用最广泛的网络测试工具之一,特别是在HTTP协议的支持上,可以算是最优秀、使用最广泛的工具。

curl可以抓取到网络与通信协议传输中各个阶段的耗时数据,在分析网络性能的时候特别好用。

用cURL进行网络请求耗时分析

cURL是一个优秀的调试网络请求的工具,可以用来测量各个环节的耗时。

以www.baidu.com为例,看下如何使用cURL分析耗时。

1、定义cURL的输出格式。

在当前目标创建名称为curl-format.txt的文件,写入以下内容:

解释下这些变量的意思:

time_name[......]

继续阅读

Read More
| by YoungTimes | No comments

C++11-获取当天是周期几

C/C++中时间相关的结果大多与tm数据结构相关。

获取今天星期几的代码如下:

程序编译和执行:

执行结果如下:

除了星期几之外,我们还可以获取当前的年份、月份、一个月中第几天、当前的时分秒等信息。

代码如下:

程序编译:

程序输出:

参考链接

http://www.banbeichadexiaojiubei.com/wp-admin/post.php?post=4465&action=edit

[……]

继续阅读

Read More
| by YoungTimes | No comments

双线性插值(Bilinear Interpolation)

线性插值

已知中P1点和P2点,坐标分别为(x1, y1)、(x2, y2),要计算 [x1, x2] 区间内某一位置 x 在直线上的y值:

根据初中的几何知识:

$$
\begin{equation}
\frac{y – y_0}{x – x_0} = \frac{y_1 – y_0}{x_1 – x_0}
\end{equation}
$$

$$
\begin{equation}
y = \frac{x_1 – x}{x_1 – x_0}y_0 +\frac{x – x_0}{x_1 – x_0}y_1
\end{equation}
$$

$$
\begin{equ[……]

继续阅读

Read More