![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 85
初心魏
最近太颓废了吧
展开
-
牛客网刷题 第二轮
1.1 求二叉树的最大深度public class Solution { public int TreeDepth(TreeNode root) { if(root == null){ return 0; }else{ return Math.max(TreeDepth(root.left) + 1,TreeDe...原创 2019-12-29 00:43:28 · 430 阅读 · 0 评论 -
牛客网刷题 第一轮
1.1public class Solution { public boolean Find(int target, int [][] array) { int a = array.length - 1; int b = array[1].length - 1; int i = 0; while(a >= 0 &...原创 2019-12-23 16:44:25 · 188 阅读 · 0 评论 -
算法 动态规划
1.1 array代表数组,数组中的数是正数,代表钱数,每种面值的货币可以使任意张,给定一aim代表要找的钱数,求换钱有多少种方法。比如:arr={5,10,25,1},aim=1000暴力搜索:一般使用暴力递归记忆搜索:将每次递归的结果放在hashmap中,下次递归的时候去hash表中查找结果,有,使用记忆的结果,没有则再进行递归。记忆搜索不规定计算的顺序。经典的动态规划方法:动态规划规定...原创 2019-08-29 23:59:58 · 240 阅读 · 0 评论 -
算法 队列和栈
一、队列1.1 栈的性质先进先出1.2 优先级队列(堆结构)1.3 双端队列1.4 宽度优先遍历二、栈2.1 栈的性质先进后出栈的基本操作都是o(1)的操作2.2 栈的基本操作pop操作top或者peek操作push操作size操作2.3 深度度优先遍历(DFS)三、案例...原创 2019-09-04 22:41:15 · 105 阅读 · 0 评论 -
算法 大数据
一、大数据相关概念1.1 哈希函数散列函数,输入域可以是很大的范围, 输出域是固定范围性质:典型的哈希函数拥有无限的输入值域输入值相同时,返回值一样输出值不同时,返回可能一样不同输入值的得到的哈希值,整体均匀的分布在输出入s上。第四点是评价哈希函数优劣的关键经典的哈希算法:MD5和SHA1算法1.2 Map-ReduceMap阶段:把大任务分成小任务Reduce阶...原创 2019-08-28 12:42:39 · 188 阅读 · 0 评论 -
算法 字符串
一、字符串类型1.1 要点StringBuilder,StringBuffer类1.2 常见类型规则判断数字运算与数组有关的操作字符计数哈希表字符数组动态规划类型最长公共子串最长公共子序列最长回文子串最长回文子序列搜索类型宽度优先搜索深度优先搜索高级算法与数据结构二、经典例题2.1 判断树中是否包含子树注意:决定对不能用层次遍历,层次遍历是错的思路...原创 2019-08-27 22:20:17 · 114 阅读 · 0 评论 -
算法 二叉树简单案例
1.1 层次遍历树思路:使用队列将树的根节点放入队列中出队一个节点,将该节点的左右子节点放入队列中直到队列为空public class Tree_Order { public static void levelOrder(Node root) { Queue<Node> queue = new LinkedList(); qu...原创 2019-08-16 17:23:46 · 517 阅读 · 0 评论 -
算法 非比较排序
一、时间复杂度为o(n)的算法1.1 计数排序思路:设定一个范围的桶,如1~100编号的桶,将数据放到对应编号的桶中,让然后将数据从桶中倒出来。以下是用二维数组模拟桶,二维数组第一列代表数据,第二列代表数据的个数public static void sort(int[] array){ int[][] Bucket = new int[15][2]; ...原创 2019-08-21 12:03:31 · 176 阅读 · 0 评论 -
算法 基于数据交换的排序
一、时间复杂度为o(n^2)的算法1.1 冒泡排序每进行一轮冒泡排序就将最大值放到后面需每次比较相邻的值取得最大值时间复杂度:o(n^2) public static void sort(int[] array){ int len = array.length; for (int i = 0; i < len - 1; i++) { ...原创 2019-08-19 19:37:07 · 531 阅读 · 1 评论 -
数据结构 java版 线索二叉树
文章目录一、线索二叉树1.1 结构1.2 线索二叉树的建立(中序)1.3 线索二叉树的遍历1.4 测试一、线索二叉树1.1 结构标志位为0时表示节点的对应lnode,rnode保存的是左右子树的引用,否则保存的是前驱节点或者后驱节点的引用。public class node { // 节点的权值ֵ public int value; //左子树和右子树 public node ...原创 2019-04-28 22:48:56 · 1799 阅读 · 0 评论 -
数据结构 二叉树的建立和递归遍历
一、二叉树的建立1.1 概念每一个节点最多有两个节点的树1.2 二叉树的建立普通节点节点的权值: int value左子节点 : node Lnode;右子节点 : node rnode;package imitate_tree;public class node { int value; node Lnode; node Rnode; public int ...原创 2019-04-16 17:35:54 · 795 阅读 · 0 评论 -
数据结构(java版本) 双向循环链表 day(6)
一、双向循环链表1.1 双向循环链表类一个指向上一个节点的引用一个指向下一个节点的引用一个value区域public class DoubleNode { DoubleNode lastnode; DoubleNode nextnode; Object value;}1.2 添加节点得到当前节点的下一个节点将要添加的节点与下一个节点相连将要添加的...原创 2019-03-12 17:12:44 · 320 阅读 · 0 评论 -
数据结构(jav版本) 单链表 day(5)
一、单链表1.1 概述单链表存储数据的优点是数据存储的实际物理空间可以不连续。单链表一般包括value区域和next区域,value区域是为了存值的,next区域存指向下一个节点的引用。1.2 Node类public class Node { Object value; Node next; }1.3 添加节点如果当前节点的next区域为空,则将当前节点与...原创 2019-03-12 14:30:33 · 739 阅读 · 0 评论 -
数据结构 (java版本) 栈 day(3)
一、栈(用数组模拟)1.1 栈的特点元素先进后出,后进先出1.2 入栈将数据元素放入栈中 public void push(int ele) { int len = a.length; int array[] = new int[len + 1]; //for each与for i;当数组为空时,for each 不行。 f...原创 2019-03-11 16:53:51 · 87 阅读 · 0 评论 -
数据结构 (java版本) 数组 day(2)
一、线性结构1.1 数组1.1.1 创建数组int[] array = new int[3];1.1.2 获取数组长度int len = array.length;1.1.3 访问数组中的元素数组名[下标]下表从0开始,一直到数组长度-1;1.1.4 为数组中的元素赋值数组名[下标] = 值;创建数组同为元素赋值int[] array = new int[]{2...原创 2019-03-11 16:43:34 · 87 阅读 · 0 评论 -
数据结构 (java版本) 队列 day(4)
一、队列(用数组模拟)1.1 特点先进先出后进后出1.2 入队将新的数据添加在队的后面public void push(int ele){ int len = array.length; int[] arr = new int[len+1]; for (int i = 0; i &amp;amp;lt; len; i++) { ...原创 2019-03-11 16:42:12 · 93 阅读 · 0 评论 -
数据结构与算法 递归与斐波那契数列 day(6)
一、 递归1.1 概念方法内部调用方法本身public class febonacci { public static void main(String[] args) { int i = sum(7); System.out.println(i); } public static int sum(int i){ if(...原创 2019-03-14 20:42:37 · 208 阅读 · 0 评论 -
数据结构 day(1)
一、数据结构的基本概念包括数据的逻辑结构,存储结构和数据的运算这三方面。1.1 概念1.2 数据的存储结构1.2.1 顺序存储结构逻辑上相邻的元素存储在物理位置上也相邻的存储单元里1.2.2 链式存储结构逻辑上相邻,实际物理存储位置不一定相邻。1.2.3 索引存储在存储元素信息的同时,还建立附加的索引表。索引表中的每一项称为索引项,索引项的一般形式是:(关键字,地址)。1.2....原创 2019-03-06 11:28:30 · 125 阅读 · 0 评论