JAVA
AntioniaMao
这个作者很懒,什么都没留下…
展开
-
LeetCode中级算法-链表-奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->...原创 2018-09-05 17:50:31 · 324 阅读 · 0 评论 -
LeetCode中级算法-相交链表
编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3在节点 c1 开始相交。 注意:如果两个链表没...原创 2018-09-05 19:46:11 · 202 阅读 · 0 评论 -
LeetCode中级算法 二叉树的锯齿形层次遍历
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]] /** * D...原创 2018-09-06 15:10:32 · 147 阅读 · 0 评论 -
LeetCode中级 二叉搜索树中第k小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,4,null,null,...原创 2018-09-12 19:25:55 · 363 阅读 · 0 评论 -
LeetCode中级算法-每个节点的右向指针
给定一个二叉树struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。说明:...原创 2018-09-07 16:40:46 · 392 阅读 · 0 评论 -
Fail-fast
具体来说就是,当创建了iterator后,如果对list进行了结构性的修改,并且不是通过iterator的方法进行的修改(add、remove)那么就会抛出@ConcurrentModificationException异常LinkedList中,定义了私有类ListItr实现ListIterator接口,在该类中定义了一个名叫expectedModCount的int变量,且=modCount...原创 2019-03-05 15:02:25 · 165 阅读 · 0 评论 -
LinkedList
简介双端队列,实现了List、Deque接口,允许存储所有类型的元素,包括null值、非线程安全的//获得线程安全的LinkedListList list = Collections.synchronizedList(new LinkedList(...))更正现在有许多文章讲解linkedlist的底层实现,部分文章提到其底层是由双端循环队列实现的但在jdk1...原创 2019-03-05 15:49:07 · 172 阅读 · 0 评论 -
[LeetCode]中计算法-递增的三元子序列
递增的三元子序列给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。数学表达式如下:如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。...原创 2018-08-07 14:25:18 · 297 阅读 · 0 评论 -
[LeetCode]中级算法-最长回文子串
最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb" 目前能想到的就是暴力解法,双层for循环,依次以每一个字符作为子串的起始处,判断每一个可能的子串是否为回文子串cla...原创 2018-08-07 11:21:01 · 180 阅读 · 0 评论 -
[LeetCode]初级算法-动态规划-爬楼梯
爬楼梯假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 步 + 1 步2. 2 步示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 步 + 1 步 + 1 ...原创 2018-07-30 15:01:39 · 324 阅读 · 0 评论 -
Java持有对象
Java中的容器用途为“存储对象”分为两大类,相较于传统的数组,容器具有容量可自动扩充的优点,且各个容器还具有额外的特性(1)CollectionList:按照插入顺序保存元素Set:每个值只保存一次Queue:按照排队规则来确定对象的产生顺序添加元素:1.使用Arrays.asList()作为构造器的输入 2.构造器为空,使用Collections...原创 2018-03-13 23:00:29 · 217 阅读 · 0 评论 -
【JAVA】String类学习笔记
1.public boolean equals(Object anObject)public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { ...原创 2018-05-16 22:06:41 · 249 阅读 · 0 评论 -
[LeetCode]初级算法-字符串-验证回文字符串
标题:验证回文字符串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false 总体还是比较简单的,首先去掉非字母和数字的其他...原创 2018-07-25 21:16:59 · 333 阅读 · 0 评论 -
[LeetCode]初级算法-字符串-字符串转整数(atoi)
标题:字符串转整数(atoi)实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有...原创 2018-07-25 21:26:26 · 280 阅读 · 0 评论 -
[LeetCode]初级算法-字符串- 实现strStr()
标题:实现strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack =...原创 2018-07-25 21:33:25 · 647 阅读 · 0 评论 -
[LeetCode]初级算法-字符串-数数并说
标题:数数并说报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1"原创 2018-07-25 21:42:24 · 468 阅读 · 0 评论 -
[LeetCode]初级算法-字符串-最长公共前缀
标题:最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。原创 2018-07-25 21:47:21 · 244 阅读 · 0 评论 -
[LeetCode]初级算法-树-二叉树的层次遍历
二叉树的遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]] 一开始的解法是,先层次遍历把所有的树节点存放...原创 2018-07-30 11:27:37 · 150 阅读 · 0 评论 -
[LeetCode]初级算法-搜索-第一个错误的版本
public int firstBadVersion(int n) { if(n==2){ if(isBadVersion(2)&&!isBadVersion(1)){ return 2; }else{ return 1; ...原创 2018-07-30 11:42:28 · 175 阅读 · 0 评论 -
[LeetCode]初级算法-查找-第一个错误的版本
第一个错误的版本你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version...原创 2018-07-30 14:41:06 · 686 阅读 · 0 评论 -
ArrayList 源码分析:自增原理
目录前言ArrayList简介预备知识容量增长机制Add()方法增长策略:Grow()容量扩充代码分析构造器分析前言ArrayList是平时比较常用的集合类,因为其容量自动增长的特性,使我们可以非常方便的使用,且不用担心容量的问题,但是其内部是如何工作的,网上有许多的分析文章,但都过于枯燥,特别是对于溢出处理的部分。所以本文采用了直观的图像分析数组容量的不同...原创 2019-03-04 21:51:25 · 395 阅读 · 1 评论