![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
吃不饱星球球长七
学无止境(zqq)
展开
-
2021-10-08
螺旋矩阵给你一个 m 行 n 列的矩阵 matrix,请按照顺时针螺旋顺序 ,返回矩阵中的所有元素。例如:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]题目来源:力扣(螺旋矩阵)解法:1.思路:从矩阵的左上角开始遍历——>右上角——>右下角——>左下角——>左上角减一;依此循环,所以需要四个变量记录上下左右的位置,移动指针变量。public class LXJZ { publi...原创 2021-10-08 11:21:31 · 74 阅读 · 0 评论 -
2021-08-22
二叉树的层序遍历层序遍历思维:一层一层的遍历,先进先出的思想,所以可以使用队列来存放结点用于遍历(此处使用了LinkedList,因为其实现了Deque接口,可以当做双端队列使用)。先将根结点加入队列,出队列时记录该结点(并将该结点打印或者也可以存放到一个集合中(看自己喜好)),记录结点是为了用于判断其是否有左子结点、右子结点,有则继续加入队列……依次循环遍历整棵树//层序遍历public static void/*ArrayList<Integer>*/ cenErgodic(Tree原创 2021-08-22 17:52:25 · 70 阅读 · 0 评论 -
2021-08-20
二叉树基础遍历——非递归方法内部结点类即主函数中方法调用public static void main(String[] args) { TreeNode g = new TreeNode(null, null, 2); TreeNode e = new TreeNode(g, null, 4); TreeNode d = new TreeNode(null, null, 5); TreeNode b = new TreeNode(d, e, 7); TreeNode f =原创 2021-08-22 16:37:16 · 58 阅读 · 0 评论 -
2021-08-19
寻找最长不重复子串题目:给你一个字符串 s,求出 s 中最长不重复子串的长度。解法:思路:比较容易想到的就是滑动窗口,如字符出 “abcdacbd”,若窗口中目前为 abc,继续向右滑动窗口,出现了 a 与窗口中元素重复,则将窗口左沿右移(可以理解为将左边的a移除窗口),移到与当前a重复的集合里元素的下一位置b处,右沿继续右移动。因为要求不重复子串,因此这里借助一个map集合,键存字符元素,值存该字符对应的位置。public class subNoRepeat{ public static vo原创 2021-08-19 19:39:17 · 67 阅读 · 0 评论 -
2021-08-19
最长回文子串题目:给你一个字符串 s,求出 s 中最长回文子串。**方法1:**首先想到的解题思路是暴力解法,即遍历给出的字符串,直接罗列所有子串,判断是否为回文,是则记录该字符串及其长度……若又出现一个回文子串,且长度大于之前记录的子串长度,则修改记录回文串和长度的值。public class MaxStr{/* * 方法1:暴力解法:罗列所有子串,检查其是否为回文及其长度 */ public static void main(String[] args) { String str原创 2021-08-19 16:04:41 · 40 阅读 · 0 评论 -
2021-08-17
寻找旋转排序数组中的最小值已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]给你一个元素值 互不相同 的数组 nums ,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的 最小元素 。题目来源:力扣(LeetCode)算法题。以下为两原创 2021-08-17 20:51:27 · 135 阅读 · 0 评论 -
2021-06-30
二叉树的实现及其基础遍历(前序、中序、后序)实现1.查找二叉树的实现定义一个查找二叉树的类:以键值对形式存储元素,让键(泛型)继承Comparable接口,方便在插入时使得结点的键之间的比较(有序)public class BinaryTree<Key extends Comparable<Key>, Value> { // 记录根结点 private Node root; // 记录树中的结点个数 private int N; //结点内部类 //插入删除方原创 2021-06-30 16:57:35 · 50 阅读 · 0 评论