自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

空易缘的博客

热爱编程的大白一枚

  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 跳台阶

题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 解题思路: 典型的动态规划题,我们可以将求跳到n级台阶的问题转换为求跳到(n-1)级台阶跳法数和跳到(n-2)级台阶的跳法数 dp方程:dp[n] = dp[n-1] + dp[n-2] 实现代码: public class Solution { //非递归解法 ...

2019-09-07 20:20:11 270

原创 二叉树的镜像

题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像。 解题思路: 所谓的镜像二叉树,也就是将左右子树翻转 实现代码: /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { ...

2019-09-07 19:49:26 93

原创 树的子结构

题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 解题思路: 挨个递归比较root2的节点和root1的节点是否相等 实现代码: /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; publi...

2019-09-04 22:43:11 110

原创 调整数组顺序使奇数位于偶数前面

题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路: 实现代码: public class Solution { public void reOrderArray(int [] array) { if(array == null){ ...

2019-09-04 22:25:45 83

原创 合并两个排序的链表

题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路: 可以利用归并排序的思想,比较两个链表的节点,小的先出 实现代码: /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val ...

2019-09-04 22:12:14 108 1

原创 翻转链表

题目描述: 输入一个链表,反转链表后,输出新链表的表头。 解题思路: 第一种解题思路就是使用栈,先遍历一次链表,存储所有的链表节点,再重新构造一个链表,显然这种解法不是最好的。 于是就有了第二种,用一个指针记录当前节点的前一个节点,并且将当前节点的next指针指向前一个节点,实现链表翻转的目的 实现代码: /* public class ListNode { int val; Li...

2019-09-02 22:30:28 75

原创 链表中倒数第K个节点

题目描述: 输入一个链表,输出该链表中倒数第k个结点。 解题思路: 快慢指针法,让快指针先行k步,当快的指针到达链表尾时,慢的指针正好指向链表倒数第k个节点 实现代码: /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; ...

2019-09-02 22:01:48 67

原创 重建二叉树

题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路: 二叉树的前序遍历,第一个元素始终为树的更节点; 根据前序遍历得到的根节点,在二叉树的中序遍历中,将中序遍历序列分为左子树和右子树的中序遍历...

2019-09-02 21:46:07 107

原创 从尾到头打印链表

题目描述: 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 解题思路: 方法一:使用栈,从头遍历链表,存储每个节点的值,然后再输出栈 方法二:使用递归 实现代码: public class Solution { /** * public class ListNode { * int val; * ListNode next = null; ...

2019-09-02 20:53:58 53

原创 替换空格

题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 题目分析: 从后往前开始替换原字符串 代码实现: public class Solution { public String replaceSpace(StringBuffer str) { if(str ==...

2019-09-01 21:40:28 72

原创 二维数组中的查找

题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目分析: 根据矩阵的特性从矩阵左下角或右上角可是查找,如果从矩阵左下角开始查找,则要查找的数始终是在当前数,如果当前的数小于目标数,则向右边移动,往递增的方向移动;如果当前的数大于目标,则向上...

2019-09-01 20:37:53 91

原创 HashMap源码分析笔记(JDK1.8)

HashMap源码分析(JDK1.8) 查看以往的文章空易缘的博客 本文是java集合源码分析第三篇,上一篇LinkedList源码分析笔记 自己学习总结的笔记,不保证完全正确,HashMap这篇相对于前面的源码分析,难度提高了很多,有写的不对的地方,还望大佬们多多指教,我会及时修正 概述 继承自AbstractMap抽象类,实现了Map、Cloneable、Serializable接口...

2019-07-23 21:42:57 137

原创 LinkedList源码分析(JDK1.8)

LinkedList源码分析笔记 概述 继承自AbstractSequentialList抽象类,实现了List、Deque、Cloneable、Serializable接口 基于双向链表实现的集合,可以做为双向队列的实现类 不支持随机访问,没有实现RandomAccess接口,查找元素效率较低 插入和删除操作效率较高,没有扩容操作,也不需要预留空间 源码分析 字段信息 public clas...

2019-07-21 16:02:17 119

原创 源码分析笔记Vector(JDK1.8)

Vector源码分析(JDK1.8) 概述 继承抽象类AbStractList,实现接口List、RandomAccess、Cloneable以及序列化接口 默认容量大小为10,扩容增量为0,扩容为原容量的2倍 如设置的增量大于0,则扩容为(原容量+增量) 支持随机访问,添加删除元素较慢 线程安全的动态数组,方法加上了synchronized同步锁,故性能较低 源码 字段信息 public c...

2019-07-20 15:41:48 374

原创 源码分析笔记ArrayList(JDK1.8)

终于开始写博客了,前面想了很多次写博客,但是都没有动笔,苦于不知如何表述,最近开始复习集合,想通过写博客加深自己的印象,记录自己的理解,该篇文章从构造方法入手,然后到常用的一些方法,摘取JDK中源码,在上面加上自己的理解,有不对的不严谨的地方还望大佬们多多指正 概述 继承AbstractList抽象类,实现List接口 底层用数组存放数据,默认容量大小为10 扩容倍数为1.5倍 线程不安全的 支...

2019-07-18 18:11:07 155

飞机大战客户端服务端.zip

Android飞机大战。联网版本的飞机大战,可以购买新的飞机,使用mvvm+jetpack+kotlin,通过netty网络框架搭建即时通讯,实现了一对一聊天,离线消息,好友添加,处理好友申请等

2020-06-17

空空如也

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

TA关注的人

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