![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
LYB1001
这个作者很懒,什么都没留下…
展开
-
按对角线顺序生成矩阵
按对角线顺序生成矩阵旷视面试题给定矩阵的行列,按对角线生成矩阵 //例如行列分别为3,4 //按对角线顺序(方向一致) //1 3 6 //2 5 9 //4 8 11 //7 10 12 public static int[][] generateMatrix(int m, int n){ int[][] res = new int[m][n]; int curVal = 1; for(int i =原创 2021-09-20 18:33:04 · 477 阅读 · 0 评论 -
lc542.找出矩阵中每个元素到0的最短距离
找出矩阵中每个元素到0的最短距离BFS代码给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。BFS假设这个矩阵中恰好只有一个 0,应该怎么做?由于矩阵中只有一个 0,那么对于每一个 1,离它最近的 0 就是那个唯一的 0。如何求出这个距离呢?1)、如果0在矩阵中的位置是(i0, j0),1在矩阵中的位置(i1, j1),则距离为 |i0 - i1| + |j0 - j1|。2)、从0的位置开始广度搜索,找到这个位原创 2021-09-07 23:43:55 · 388 阅读 · 0 评论 -
lc17: 电话号码的字母组合
lc17: 电话号码的字母组合回溯代码复杂度分析回溯首先用哈希表将数字与对应的字母映射起来,然后进行回溯操作。回溯可找到所有的可行解,如果发现一个解不可行,则舍弃。每个数字对应的字母都可能进入字母组合,所以直接穷举所有的解即可。回溯过程中维护一个combination字符串,表示已有的字符排列,初始为空,每次取电话号码的一位数字,从哈希表中获得该数字对应的所有字母,将其中一个字母插入到combination后,然后继续处理电话号码的后一位数字,直到处理完所有的digit,即得到一个完整的字母排列,然原创 2021-09-07 22:32:52 · 225 阅读 · 0 评论 -
将一个整数转换为另一个整数的操作次数
将一个整数转换为另一个整数的操作次数Hamming Distance(汉明距离)计算汉明距离代码实现方法一方法二Hamming Distance(汉明距离)在通信编码领域中,Hamming Distacne表示两个两个等长字符串在对应位置上不同字符的数目,换句话说就是它度量了将字符串x变为y所需要的最小替换次数。1011101 and 1001001 is 2."hamming" and "hammong" is 1. 计算汉明距离对于两个整数来说,汉明距离就是对应位置上数字不同的位数。所以可原创 2021-09-07 16:33:12 · 368 阅读 · 0 评论 -
二叉树遍历总结
二叉树遍历总结简介遍历方式中序遍历前序遍历后序遍历代码实现中序实现递归迭代前序实现递归迭代后序实现递归迭代简介线性数据结构比如数组、链表、队列和堆栈都只有一种访问数据的方式,像树这样的非线性数据结构可以有不同的遍历方式。下面总结下二叉树的几种不同遍历方式。遍历方式中序遍历1、先遍历左子树2、在遍历父节点3、最后遍历右子树前序遍历1、先遍历父节点2、再遍历左子树3、最后遍历右子树后序遍历1、先遍历左子树2、再遍历右子树3、最后遍历父节点代码实现首先定义树的结构public原创 2021-02-13 10:35:49 · 315 阅读 · 1 评论 -
常见排序算法详细总结
常见排序算法详细总结前言排序算法的特性基于比较的排序和非比较的排序时间复杂度排序算法时间复杂度的简略证明空间复杂度排序算法的稳定性代码实现冒泡排序选择排序插入排序希尔排序归并排序快速排序堆排序二叉搜索树排序桶排序计数排序基数排序TimSort参考前言排序算法在计算机科学入门课程中很普遍,同时在面试和笔试中也经常涉及到,本文就总结了十二种排序算法供大家学习,当然排序算法有很多很多,本文只总结了常见的和经典的几种。排序算法的特性首先对于一个排序算法我们要做的不单单是搞懂原理和代码,更重要的是知道如何去评原创 2020-11-06 18:46:34 · 411 阅读 · 0 评论