- 博客(46)
- 收藏
- 关注
原创 Java 递归和非递归实现二叉树的前序、中序、后序遍历
二叉树的遍历是非常重要的基础算法,今天闲来无事,对二叉树的前序、中序、后序遍历使用递归和非递归进行了一个实现。构造一个有9个节点的二叉树,如下具体代码实现如下public class BinaryTree { private static class Tree { private Integer value; private Tree leftNode; private Tree rightNode; } ..
2021-04-18 22:42:37 247
原创 【练题记录】leetcode 289. 生命游戏
问题描述给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;如果活细胞周围...
2020-04-05 21:57:05 293
原创 【练题记录】leetcode 4. 寻找两个有序数组的中位数
问题描述给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2...
2020-02-02 18:12:27 211
原创 【练题记录】Java实现快速排序
在十大经典排序算法中,快排的应用场景非常多,因此掌握快排的思想和实现是非常重要的。本文以将一个数组从小到大排序为例来讲解快排十大经典排序算法比较快排的基本流程1、选择一个中轴pivot2、将比pivot大的元素放到其右边3、将比pivot小的元素放到其左边4、分别对左右列表元素按照前三步进行递归5、递归的终止条件为元素列表的左下标≥右下标代码实现public cla...
2020-01-31 18:03:57 193
原创 【练题记录】leetcode 1091 二进制矩阵中的最短路径
问题描述在一个 N × N 的方形网格中,每个单元格有两种状态:空(0)或者阻塞(1)。一条从左上角到右下角、长度为 k 的畅通路径,由满足下述条件的单元格 C_1, C_2, …, C_k 组成:相邻单元格 C_i 和 C_{i+1} 在八个方向之一上连通(此时,C_i 和 C_{i+1} 不同且共享边或角)C_1 位于 (0, 0)(即,值为 grid[0][0])C_k 位于 (N...
2020-01-30 22:55:14 340
原创 非递归实现广度优先遍历(BFS)
对于广度优先遍历,使用递归方式实现非常普遍,这里我们讨论一下如何使用非递归来实现算法1、以图的邻接矩阵为例2、使用一个queue来保存访问顺序,每次取队首元素,如果其有邻接点,则将其所有邻接点入队,并设置visit数组为1,最后再将其出队3、循环结束条件为:队列为空代码实现以下图为例public class BfsIterateAdjacentMatrix { ...
2020-01-30 17:44:29 1865
原创 非递归实现深度优先遍历(DFS)
对于深度优先遍历,使用递归实现是非常普遍的,但是递归算法往往比较难以理解,如果递归终止条件设置不好的话,容易出现死循环。我们来看看通过非递归方式如何实现深度优先遍历算法1、以图的邻接矩阵为例2、使用一个stack来保存要访问的节点,每次都获取栈顶元素,然后遍历其对应的邻接点,如果遇到一个没有访问过的邻接点,则终止对其他邻接点的遍历,将该邻接点入栈,并进行下一轮循环,直到该元素的邻接...
2020-01-30 12:52:01 6887
原创 Leetcode 885螺旋矩阵Ⅲ
问题描述在 R 行 C 列的矩阵上,我们从 (r0, c0) 面朝东面开始这里,网格的西北角位于第一行第一列,网格的东南角位于最后一行最后一列。现在,我们以顺时针按螺旋状行走,访问此网格中的每个位置。每当我们移动到网格的边界之外时,我们会继续在网格之外行走(但稍后可能会返回到网格边界)。最终,我们到过网格的所有 R * C 个空间。按照访问顺序返回表示网格位置的坐标列表。示例 1:...
2020-01-29 11:49:44 248
原创 LeetCode 1314 矩阵区域和
问题描述给你一个 m * n 的矩阵 mat 和一个整数 K ,请你返回一个矩阵 answer ,其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和:i - K <= r <= i + K, j - K <= c <= j + K(r, c) 在矩阵内。示例 1:输入:mat = [[1,2,3],[4,5,6],[7,8,9]...
2020-01-28 19:10:52 550
原创 leetcode 542 01矩阵问题
问题描述给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意:给定矩阵的元素个数不超过 10000。给定矩阵中至少有一个元素是 0。矩阵...
2020-01-28 16:34:21 483
原创 leetcode 51 N queens问题解法
问题描述n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。解题思路使用DFS和回溯法按行进行搜索,得到一个正确解或者无法得到正确解,则往上回溯寻找求他解实现思路和代码如下class Solution {public ArrayList<List<String>> solveNQueens(int n) {...
2020-01-12 21:28:09 141
原创 Longest Common Prefix 解题记
在LeetCode上看到了一道标记为easy的题目,题目如下 Write a function to find the longest common prefix string amongst an array of strings. 题目分析题目描述非常简单,就是要求找出字符串数组的最大公共前缀。 1、做OJ的条件反射应该是首先考虑异常输入情况,即字符串数组为null或者长度为
2017-07-09 19:16:04 428
原创 关于JAVA 8 是否需要StringBuilder来拼接字符串的思考
关于JAVA 8 是否需要StringBuilder来拼接字符串的思考最近看到一片文章说JAVA 8已经不需要使用StringBuilder来拼接字符串了,使用+的效率也会非常高,文章链接 http://www.codeceo.com/article/why-java8-not-use-stringbuilder.html 本篇博文就对该文章的说法进行一个讨论
2017-05-29 20:12:58 1624 1
原创 Eclipse查看某个类的方法时出现“Source not found”的解决办法
问题描述 Eclipse查看某个类的方法时出现“Source not found you can attach the source by clicking Attach Source below” 如下图所示: 问题分析 这种问题是由于对应的类的源文件没有加载解决方法 点击“Attach Source”,选择对应的源码的压缩文件,要是zip格式的,加载
2016-10-23 22:03:42 3903
原创 逆波兰表达式 java
今天有点时间来写一下使用java实现中缀表达式转换为逆波兰表达式,逆波兰表达式其实就是后缀表达式,废话不多说,先看中缀表达式转换为逆波兰表达式的算法。
2016-05-16 16:17:33 1455 1
原创 Java实现双向链表
上一篇文章http://blog.csdn.net/iniegang/article/details/48932261已经对循环单链表进行了具体实现,对于双向链表,实现起来也非常类似,但是需要注意的是每个节点(除了头尾)都要分别指向它的前驱节点和后继节点。
2015-10-06 20:35:21 721
原创 Java实现循环单链表……
相比于C和C++,Java中没有了“结构”,因此就要使用类来描述“结构”,同样的,在实现链表时,就可以使用类来定义节点,然后进行相应的操作,以下是我实现循环单链表的代码,循环单链表和单链表的区别在于最后一个节点的判断,整体不难……
2015-10-06 16:31:09 5515
原创 开放3306端口,远程连接MySQL
使用Navicat远程连接阿里云服务器的MySQL数据库,一直提示错误: 2003- Can’t connect MySQL Server on ’ ‘(10038)
2015-09-30 20:19:36 20925
原创 最长递增子序列 LIS 时间复杂度O(nlogn)的Java实现
求最长递增(递减)子序列 LIS时间复杂度O(nlogn)的Java实现...
2015-08-15 13:20:35 3519
原创 Windows下安装tomcat
关于Linux下安装tomcat的方法,已经在文章http://blog.csdn.net/iniegang/article/details/46972217 中做了详细介绍,这里我再介绍一下Windows下安装tomcat的过程,以及可能遇到的问题1、Windows下安装tomcat首先要安装Java,关于Java的安装在文章去tomcat官网http://tomcat.apac
2015-07-28 11:49:45 599
原创 KMP算法解决字符串匹配问题
又碰到字符串匹配的问题,我深深地感到传统算法的效率之底下,因此我搜索了一下,找到了两篇非常好的文章,链接分享如下:1、来自图灵社区的文章http://www.ituring.com.cn/article/598812、CSDN的一篇博客http://blog.csdn.net/joylnwang/article/details/6778316建议这两篇结合起来看
2015-07-25 15:57:40 805
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人