自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白马负金羁

数据挖掘 | 统计分析 | 图像处理 | 程序设计

  • 博客(12)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 深入理解并查集:从Leetcode实践出发【2】(题号924、990、684、261)

不相交集(Disjoint Set)又称并查集,是解决等价或划分问题的一种有效的数据结构(树和森林常常被用来描述不相交集)。前一篇文章已经介绍了关于这种特殊数据结构的基本知识,并采用Python3实现了并查集类。本文将继续以LeetCode题目为例来具体实践如何利用并查集这种特殊的数据结构解决实际问题

2021-03-29 19:36:09 284 3

原创 深入理解并查集:从Leetcode实践出发【1】(题号547、323、721)

不相交集(Disjoint Set)又称并查集,是解决等价或划分问题的一种有效的数据结构(树和森林常常被用来描述不相交集)。本文主要节选《算法之美:隐匿在数据结构背后的原理》一书中的相关章节来介绍并查集的基本原理和操作,此处会采用Python3重新实现相关算法。同时,本文还将以一道LeetCode题目为例来具体说明如何利用并查集这种特殊的数据结构解决实际问题

2021-03-27 09:32:00 112

原创 深入理解双指针类型问题:从Leetcode实践出发(题号15、16、18、209)

双指针类型题目的处理对象往往是线性表(例如数组、链表、字符串等),这种类型的题目在LeetCode中是比较普遍的,但难道往往不大。本文并不打算覆盖所有可能的子类型,仅抛砖引玉地讨论几道有一定代表性(同时也可能不太容易想到解法)的问题

2021-03-23 10:30:49 98

原创 深入理解归并与排序:从Leetcode实践出发(题号21、147、148)

排序是算法设计中最基本的问题之一。很多语言也都内置了排序函数,实际开发中需要手工编写排序函数的情况并不多见。但如果涉及到链表排序的话,通常内置函数就不能直接使用了。事实上,LeetCode题库中有相当多涉及排序的问题,也有很多操作链表的问题。本文主要讨论其中几个把链表和排序结合在一起的问题,并复习一下关于归并排序的知识

2021-03-21 12:56:39 84

原创 深入理解回溯法:从Leetcode实践出发【4】(题号51、52、37)

回溯法(Backtracking)是一种重要的算法设计思想。它常常借助深度优先遍历(DFS)来实现,另外一类常借助DFS来实现的算法是动态规划,因此,二者的编码往往会使用到递归。在Leecode上有很多会用到回溯法来解决的编程问题。本文是回溯法系列文章的最后一弹,其中选取的Leetcode题目难度级别为Hard,而且是非常经典的算法问题

2021-03-17 06:24:36 141

原创 深入理解二分查找:从LeetCode实践出发【2】(题号875、658、29、240、436、378)

二分查找(Binary Search)是数据结构与算法课程中应该讲到的一个非常重要的内容。通常,二分查找算法可以借由递归的结构来实现,也可以通过迭代来实现。但是在实际应用中二分查找可能变化出许多更为复杂的形式,面对这些变种题目时能否得心应手地来处理,便考察了你是否真正掌握了二分查找的精髓

2021-03-12 14:55:22 115

原创 深入理解栈结构:从Leetcode实践出发【2】(题号901、496、739、503、84、85、42)

栈是一种非常重要的线性数据结构,它的特点在于最后入栈的数据项也将是最先被处理的数据项。Leetcode中涉及很多与栈相关的题目。此外,像树的深度遍历除了使用递归以外,另外一种写法就是利用栈来迭代(循环)实现。而DFS(也包括回溯法)相关的题目在Leetcode中更是非常普遍。因此,牢固掌握栈的使用,并攻克相关类型题目也非常重要

2021-03-10 07:48:57 95

原创 深入理解栈结构:从Leetcode实践出发【1】(题号20、32、1249、150、735)

栈是一种非常重要的线性数据结构,它的特点在于最后入栈的数据项也将是最先被处理的数据项。Leetcode中涉及很多与栈相关的题目,而且可以基于栈实现的DFS(也包括回溯法)相关的题目在Leetcode中更是非常普遍。牢固掌握栈的使用,并攻克相关类型题目也非常重要。本文将基于Leetcode中的题目来实际展示一下栈的使用

2021-03-10 06:06:43 86

原创 深入理解深度优先搜索:从Leetcode实践出发【3】(题号785、207、797、802、1319)

在图中进行搜索是一个非常重要的话题,具体来说,又分为深度优先搜索(DFS,Depth First Search)和广度优先搜索(BFS, Breadth First Search)两种。其中,前者的理解难度要大于后者,而且在Leetcode解题中,前者应用得也更多。在涉及到回溯或动态规划时,往往也需要借助到DFS来编程实现。本文将从Leetcode题目求解的角度出发,通过实践来探讨一下DFS有关的一些话题

2021-03-06 17:53:50 696 5

原创 深入理解深度优先搜索:从Leetcode实践出发【2】(题号733、559、695、200、690、17)

在树(或者图)中进行搜索是一个非常重要的话题,具体来说,又分为深度优先搜索(DFS,Depth First Search)和广度优先搜索(BFS, Breadth First Search)两种。其中,前者的理解难度要大于后者,而且在Leetcode解题中,前者应用得也更多。在涉及到回溯或动态规划时,往往也需要借助到DFS来编程实现

2021-03-06 04:45:13 271 1

原创 深入理解回溯法:从Leetcode实践出发【3】(题号22、79、131、254、526、1079)

回溯法(Backtracking)是一种重要的算法设计思想。它常常借助深度优先遍历(DFS)来实现,另外一类常借助DFS来实现的算法是动态规划,因此,二者的编码往往会使用到递归。在Leecode上有很多会用到回溯法来解决的编程问题。本文将从Leetcode题目求解的角度出发,通过实践来探讨一下回溯法编程的基本套路

2021-03-05 08:12:17 106

原创 深入理解回溯法:从Leetcode实践出发【1】(题号46、47、78、90、784)

回溯法(Backtracking)是一种重要的算法设计思想。它常常借助深度优先遍历(DFS)来实现,另外一类常借助DFS来实现的算法是动态规划,因此,二者的编码往往会使用到递归。在Leecode上有很多会用到回溯法来解决的编程问题。本文将从Leetcode题目求解的角度出发,通过实践来探讨一下回溯法编程的基本套路import copyclass Solution:...

2021-03-01 03:56:41 109

在Word中写出像LaTeX一样的公式

Word中编辑数学公式的技巧(毕业论文排版必备),在Word中写出像LaTeX一样的的公式。

2015-12-21

白马负金羁的留言板

发表于 2020-01-02 最后回复 2020-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除