| by YoungTimes | No comments

面试刷题-Trie树-单词搜索

题目描述

给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。

单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元[……]

继续阅读

Read More
| by YoungTimes | No comments

面试刷题-滑动窗口-无重复字符的最长子串

题目-无重复字符的最长子串

链接: https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/

给定一个字符串,找出其中不含有重复字符的最长子串的长度。

[……]

继续阅读

Read More
| by YoungTimes | No comments

面试刷题-前缀树(Trie)

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

Trie有三个基本特征:

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

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

继续阅读

Read More
| by YoungTimes | No comments

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

题目链接

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

题目描述

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

[……]

继续阅读

Read More
| by YoungTimes | No comments

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

题目链接:

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

题目描述

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

示例:

解题方法

1、深度优先遍历[……]

继续阅读

Read More
| by YoungTimes | No comments

数据结构与算法-计算二叉树中节点的最大距离

1.问题定义

如果把二叉树看做无向图,我们姑且定义二叉树的“距离”为节点之间边的个数。现在要计算二叉树中相距最远的两个节点之间的距离。

二叉树的节点距离计算有几种情况:

1) 根节点为空,路径长度为0;

2) 根节点非空的情况下,分为两种情况:

情况A: 路径经过左[……]

继续阅读

Read More
| by YoungTimes | No comments

动态规划-最长公共子序列

1.公共子序列

给定两个字符串m和n,如果它们的子串a和b内容相同,则称a和b是m和n的公共子序列。子串中的字符在原字符串中不要求连续,只要保持原有相对顺序即可。

例如,字符串“abcfbc”和“abfcab”,其中“abc”同时出现在两个字符串中,因此“abc”是它们的公共子序列。

[……]

继续阅读

Read More
| by YoungTimes | No comments

数据结构排序算法-堆排序

1.什么是堆排序

堆排序是利用堆这种数据结构设计的一种排序算法。它的最好、最坏、平均的时间复杂度都是nlogn,是一种非稳定排序算法。

2.什么是堆

堆(heap)是计算机科学中一类特殊的数据结构的统称,它满足以下的性质:

1) 堆中某个节点的值总是不大于或不小于其父[……]

继续阅读

Read More