算法
文章平均质量分 50
iNiegang
这个作者很懒,什么都没留下…
展开
-
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 阅读 · 0 评论 -
【练题记录】leetcode 289. 生命游戏
问题描述给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;如果活细胞周围...原创 2020-04-05 21:57:05 · 294 阅读 · 0 评论 -
【练题记录】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 阅读 · 0 评论 -
【练题记录】Java实现快速排序
在十大经典排序算法中,快排的应用场景非常多,因此掌握快排的思想和实现是非常重要的。本文以将一个数组从小到大排序为例来讲解快排十大经典排序算法比较快排的基本流程1、选择一个中轴pivot2、将比pivot大的元素放到其右边3、将比pivot小的元素放到其左边4、分别对左右列表元素按照前三步进行递归5、递归的终止条件为元素列表的左下标≥右下标代码实现public cla...原创 2020-01-31 18:03:57 · 193 阅读 · 0 评论 -
【练题记录】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 阅读 · 0 评论 -
非递归实现广度优先遍历(BFS)
对于广度优先遍历,使用递归方式实现非常普遍,这里我们讨论一下如何使用非递归来实现算法1、以图的邻接矩阵为例2、使用一个queue来保存访问顺序,每次取队首元素,如果其有邻接点,则将其所有邻接点入队,并设置visit数组为1,最后再将其出队3、循环结束条件为:队列为空代码实现以下图为例public class BfsIterateAdjacentMatrix { ...原创 2020-01-30 17:44:29 · 1869 阅读 · 0 评论 -
非递归实现深度优先遍历(DFS)
对于深度优先遍历,使用递归实现是非常普遍的,但是递归算法往往比较难以理解,如果递归终止条件设置不好的话,容易出现死循环。我们来看看通过非递归方式如何实现深度优先遍历算法1、以图的邻接矩阵为例2、使用一个stack来保存要访问的节点,每次都获取栈顶元素,然后遍历其对应的邻接点,如果遇到一个没有访问过的邻接点,则终止对其他邻接点的遍历,将该邻接点入栈,并进行下一轮循环,直到该元素的邻接...原创 2020-01-30 12:52:01 · 6898 阅读 · 0 评论 -
Leetcode 885螺旋矩阵Ⅲ
问题描述在 R 行 C 列的矩阵上,我们从 (r0, c0) 面朝东面开始这里,网格的西北角位于第一行第一列,网格的东南角位于最后一行最后一列。现在,我们以顺时针按螺旋状行走,访问此网格中的每个位置。每当我们移动到网格的边界之外时,我们会继续在网格之外行走(但稍后可能会返回到网格边界)。最终,我们到过网格的所有 R * C 个空间。按照访问顺序返回表示网格位置的坐标列表。示例 1:...原创 2020-01-29 11:49:44 · 248 阅读 · 0 评论 -
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 · 551 阅读 · 0 评论 -
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 · 484 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
逆波兰表达式 java
今天有点时间来写一下使用java实现中缀表达式转换为逆波兰表达式,逆波兰表达式其实就是后缀表达式,废话不多说,先看中缀表达式转换为逆波兰表达式的算法。原创 2016-05-16 16:17:33 · 1458 阅读 · 1 评论 -
查找组成一个偶数最接近的两个素数 Java实现
华为OJ 查找组成一个偶数最接近的两个素数原创 2015-09-07 22:11:43 · 1693 阅读 · 0 评论 -
字符串匹配 CCF KMP算法实现字符串匹配
字符串匹配问题 CCF KMP算法实现字符串匹配原创 2015-07-26 11:13:25 · 1513 阅读 · 0 评论 -
LIS 最长递增子序列 Java实现
最长递增子序列 LIS java实现原创 2015-08-09 20:51:53 · 5931 阅读 · 0 评论 -
最长递增子序列 LIS 时间复杂度O(nlogn)的Java实现
求最长递增(递减)子序列 LIS时间复杂度O(nlogn)的Java实现...原创 2015-08-15 13:20:35 · 3519 阅读 · 0 评论 -
找出字符串中第一个只出现一次的字符
找出字符串中第一个只出现一次的字符 华为OJ原创 2015-08-30 15:16:27 · 873 阅读 · 0 评论 -
称砝码 动态规划
称砝码 动态规划 华为OJ java语言原创 2015-08-29 15:43:29 · 2524 阅读 · 0 评论 -
合唱队数 java实现
华为OJ 合唱队数 java实现原创 2015-08-15 21:53:05 · 3714 阅读 · 0 评论 -
名字漂亮度
这是一道坑爹的题目——华为OJ 名字漂亮度原创 2015-08-16 23:51:17 · 2261 阅读 · 3 评论 -
字符串加解密
华为OJ 字符串加解密 Java原创 2015-08-18 14:57:10 · 1716 阅读 · 0 评论 -
人民币小写转换为大写
人民币小写转换大写 java原创 2015-08-19 23:32:37 · 1168 阅读 · 0 评论 -
命令行选项 CCF
命令行选项 CCF java实现原创 2015-08-02 21:44:11 · 2955 阅读 · 0 评论 -
KMP算法解决字符串匹配问题
又碰到字符串匹配的问题,我深深地感到传统算法的效率之底下,因此我搜索了一下,找到了两篇非常好的文章,链接分享如下:1、来自图灵社区的文章http://www.ituring.com.cn/article/598812、CSDN的一篇博客http://blog.csdn.net/joylnwang/article/details/6778316建议这两篇结合起来看原创 2015-07-25 15:57:40 · 807 阅读 · 0 评论