
数据结构与算法
总结自己的算法数据结构的学习之旅
Moo_Lavender
做个内心阳光的人,不忧伤,不心急,坚强,向上☀️
展开
-
【算法】回溯问题常见题目 ——全排列、组合总和
回溯作为常见的算法之一,相信大家也曾经遇到过回溯相关的问题,觉得摸不着头脑,实际上回溯相关的问题也是有套路的。回溯一、什么是回溯二、回溯的框架三、全排列[46] 全排列[47] 全排列II四、组合总和[39] 组合总和[40] 组合总和II[216] 组合总和III一、什么是回溯回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就 “...原创 2020-05-01 10:44:19 · 917 阅读 · 0 评论 -
【数据结构】红黑树的插入 —— 多图结合源码理解红黑树的插入
红黑树是一个特殊的二叉搜索弱平衡树,它是为了改善使用平衡树时需要大量维持平衡的操作二产生的。对于红黑树而言,实现的是黑节点的平衡,所以插入后继续维持红黑树的特性也较为方便。今天就来探讨红黑树的插入过程。原创 2020-04-05 17:10:29 · 351 阅读 · 0 评论 -
【源码学习】深入剖析核心源码之 ConcurrentHashMap(JDK1.7 和JDK1.8)
面试中常被问到的数据结构就是哈希表,一般都是先问HashMap,再接着问ConcurrentHashMap,所以深入学习源码以及相关的知识是很重要的。本文带你学习1.7和1.8 的ConcurrentHashMap的原理,欢迎学习...原创 2020-03-28 19:35:04 · 472 阅读 · 0 评论 -
Java基础知识六——树及二叉树
一、树树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。1.树的基本术语节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为6叶节点或终端节点:度为0的节点称为叶节点; 如上图:B、C、H、I…等节点为叶节点非终端节点或分支节点:度不为0的节点; 如上图:D、E、F、G…等节点为分支节点双亲节点或父节点:若一个节点含有子节点,则这...原创 2019-08-25 18:12:41 · 396 阅读 · 0 评论 -
[数据结构&Java]栈和队列——一种特殊的线性表
栈——先进后出1.常用操作初始化压栈/弹栈查看当前栈顶元素判断为空返回元素个数2.实现链表可以实现LinkedListpush/pop 头插/头删顺序表可以实现Strack(class) 尾插/尾删自己实现利用顺序表实现一个栈class Strack{private int[] size; ------top;private int[] ar...原创 2019-08-21 16:18:09 · 1403 阅读 · 0 评论 -
数据结构基础知识一——链表
链表1.逻辑上有前后顺序2.不保证逻辑前后顺序元素挨着以下介绍几个最基础的链表操作:首先定义Node类:class Node{ public int value; public Node next; public Node(int value){ this.value = value; this.next = null; }}一、插入链表的遍历public...原创 2019-06-05 11:20:14 · 225 阅读 · 0 评论 -
[java&数据结构]实现一个方法要求删除线性表中的全部的某个数
首先我们建立一个类:public class SeqList{ //属性 private int[] array; //保存数据 private int size; //已经有的数据个数 //构造方法 public SeqList(){ //1.初始化array //2.初始化size array = new int[11]; //动态初始化,必须知道长度...原创 2019-05-27 21:26:21 · 418 阅读 · 0 评论 -
【Java习题】关于树的简单、中等、常见题目汇总
这几天在刷树相关的习题,今天来整体的总结一下关于树的题目。分了三个难度等级,各式各样的题目,欢迎学习原创 2020-03-26 15:32:33 · 639 阅读 · 0 评论 -
【Java习题练习】对于一个字符串,设计一个算法,计算其是否是一个合法的字符串
题目看起来并不难,第一想法就是使用栈来解决问题,左括号入栈,右括号出栈,遇到非括号就返回false,最后根据栈中是否还有元素,来确定括号组,是否合法。于是兴致勃勃写了如下代码:import java.util.*;//对于一个字符串,设计一个算法,计算其是否是一个合法的字符串。public class Parenthesis { public boolean chkParenth...原创 2019-11-09 23:21:19 · 703 阅读 · 0 评论 -
【算法与数据结构】万字长文总结——图解那些让你凌乱的七大排序!
七大排序有哪七大呢?就是这些啦:插入、希尔、选择、堆排、冒泡、快排、归并一开始学习时,我也会觉得很混乱。于是自己进行了总结和分类,现在思路也很清晰。接下来一个个介绍,最后将会从不同角度进行总结:一、插入排序1.思路讲解插入排序分为直接插入排序和二分插入排序,这里着重看直接插入排序,二分插入排序与二分查找整体思路相同。插入排序就是每次从无序区间选择第一个数,插入到有序区间的合适位置。可...原创 2019-10-24 20:45:31 · 4212 阅读 · 0 评论 -
【算法】动态规划:适合新手的动态规划入门常见题目详解
动态规划一、什么是动态规划1.官方定义2.动态规划的特点二、题目练练手1.斐波那契数列一、什么是动态规划1.官方定义动态规划(英语:Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即...原创 2019-12-16 20:42:01 · 1580 阅读 · 2 评论