![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
文章平均质量分 77
九月的小海
这个作者很懒,什么都没留下…
展开
-
为什么ArrayList中的elementData为什么没有private修饰?
根据面向对象编程的基本原则,数据应尽量的隐蔽。而ArrayList中的成员变量elementData却选择了默认可见性,也就是包可见性。源码中的注释为non-private to simplify nested class access,为了嵌套类可达。但即使外部类的成员变量为private,非静态嵌套类依然可达。 例如在内部类Itr,无论外部成员变量elementData是否为private,I...原创 2019-02-19 16:17:20 · 1019 阅读 · 5 评论 -
LeetCode中的数据结构1:数组
数组问题要明确变量的定义,并全程保持其定义,维护循环不变量。 维护循环不变量。原创 2019-06-11 23:01:20 · 142 阅读 · 0 评论 -
LeetCode中的数据结构3:二叉树
二叉树具有天然的递归性,二叉树问题也常用递归方式求解。递归函数应该包含两部分:递归终止条件和递归过程。例如求二叉树的最大深度,就是使用递归方法求解的非常简单的二叉树问题。原创 2019-06-02 02:10:36 · 236 阅读 · 0 评论 -
排序3:堆排序
堆是一种特殊的树结构,其最典型的的应用就是堆排序。堆排序是一种原地的、时间复杂度为O(nlogn)的排序算法。 1. 必须是一棵完全二叉树。 2. 每个节点都必须大于等于(或小于等于)它的所有子节点,等价于每个节点都必须大于等于(或小于等于)它的左右节点。原创 2019-04-21 22:20:56 · 175 阅读 · 0 评论 -
排序2:快速排序的优化方案
上一篇文章简单的讨论了快速排序的实现,但这种实现在分区不均衡时,有可能退化成时间复杂度为O(n^2^)的算法。原创 2019-04-12 16:23:13 · 204 阅读 · 0 评论 -
LeetCode笔记:438. Find All Anagrams in a String
这是一道难度为Easy的问题,但我觉得挺难的。记录一下。 问题 Given a string s and a non-empty string p, find all the start indices of p’s anagrams in s. Strings consists of lowercase English letters only and the length of both s...原创 2019-04-08 14:22:27 · 132 阅读 · 0 评论 -
LeetCode中的数据结构2:链表
链表问题要尤其注意,检查边界条件是否考虑全面,代码在边界条件下是否能正确运行,如:链表为空、链表只包含一个结点、链表只包含两个结点、代码逻辑处理头结点和尾结点时,能否正常执行。原创 2019-06-01 05:28:04 · 194 阅读 · 0 评论 -
排序1:常见排序方法的简单介绍
虽然时间复杂度不是考察一个算法的唯一指标,但却是大部分情况下都非常看重的,所以我们就按这个思路梳理一下常见的排序算法。 常见的排序算法按照时间复杂度可划分成两类, 1. O(n^2^):插入排序、选择排序。 2. O(nlogn):归并排序、快速排序。原创 2019-04-01 15:25:35 · 291 阅读 · 1 评论 -
LeetCode笔记:121. Best Time to Buy and Sell Stock
又是一道很简单,但每次都让我误入歧途的问题。Mark一下。 问题 Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (i.e., buy one ...原创 2019-03-04 21:52:19 · 130 阅读 · 0 评论 -
LeetCode笔记:283. Move Zeroes
这是一道难度为Easy的问题,但不知道为什么,每次做我都会掉入思维误区,想出超级复杂的方案。今天整理一下,以便加深印象。 问题 Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements. ...原创 2019-02-28 22:38:40 · 148 阅读 · 0 评论 -
LeetCode中的数据结构4:查找表
Java中的Set和Map底层是哈希表实现,哈希表的缺点是失去了数据的顺序性。 如果需要数据的顺序性,需要使用底层是二叉查找树的实现。原创 2019-07-02 16:06:34 · 197 阅读 · 0 评论