数据结构与算法
_Volcano_我是火山君
这个作者很懒,什么都没留下…
展开
-
【任务1 - 数组与链表】
JAVA JDK中List接口下面有两个实现类,分别是ArrayList和LinkedList。其中,ArrayList实现了随机访问的接口,LinkedList实现了Quene的接口。ArrayList是基于数据实现的list,而LinkedList是基于链表实现的list。所以,ArrayList拥有着数组的特性,LinkedList拥有着链表的特性。问题一:关于数组的动态...原创 2019-02-28 14:57:05 · 201 阅读 · 0 评论 -
【数据结构与算法】
代价数组(cost):【, , , , , ,】利润数组(profit):【 , , , , , ,】对应位置: 0,1, 2, 3,4, 5对应位置的数值,就是它的花费,以及它的利润。最后获得的钱是代价+利润。给定初始资金是W(初金)100,一次只能做一个项目,在能做k个项目(最多k个)的情况下,获取的最大收益是?解题思路:1、数据结构:一个数组里,...原创 2019-05-18 17:12:39 · 159 阅读 · 0 评论 -
【数据结构与算法】例题八
选择的依据:哪个结束的早就先安排哪个。定义一个Program类,里面包含两个成员,分别是start和end,即开始的时间和结束的时间。当当前的时间小于项目开始的时间时,执行该项目,项目数加1,并且让当前时间推进到项目结束的时间。package bublleSort;import java.util.Arrays;import java.util.Comparator;p...原创 2019-05-19 16:23:12 · 162 阅读 · 0 评论 -
【数据结构】树
一、二叉树1、满二叉树 任何一个非叶子节点,孩子都是全的,属于完全二叉树。 (除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。)2、完全二叉树(堆就是完全二叉树) 若设二叉树的深度为h。 除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数; 第 h 层所有的结点都连续集中在最左边,这就是完全二...原创 2019-03-23 16:28:19 · 114 阅读 · 0 评论 -
【数据结构】图
无向图有向图图的权临界矩阵图的遍历深度优先遍历 DFS 它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念即是深度优先的概念。package codingTest6;import java.util.HashSe...原创 2019-03-12 14:25:26 · 124 阅读 · 0 评论 -
【数据结构】递归、分治、回溯、动态规划
递归爬楼梯https://leetcode.com/problems/climbing-stairs/package codingTest2;//1.假设当有n个台阶时假设有f(n)种走法。//2.最后一步要么跨1个台阶要么跨2个台阶。//3.当最后一步跨1个台阶时即之前有n-1个台阶,根据1的假设即n-1个台阶有f(n-1)种走法。//4. 当最后一步跨2个台阶时即之前...原创 2019-03-16 21:42:18 · 423 阅读 · 0 评论 -
【数据结构】堆
实现堆排序package codingTest5;public class heapSort { public static void heapSort(int[] arr) { if(arr == null || arr.length < 2) { return; } int size = arr.length; //变成大根堆 for(int ...原创 2019-03-10 16:22:38 · 77 阅读 · 0 评论 -
【数据结构】二叉树
实现二叉树前、中、后序以及按层遍历1、递归版:package codingTest5;public class PreInPosTraversal { public static class Node{ int val; Node left; Node right; public Node() {} public Node(int data) { ...原创 2019-03-10 14:59:07 · 335 阅读 · 0 评论 -
【数据结构】排序(冒泡、选择、插入、归并、快排、堆排)
目录一、冒泡排序二、选择排序三、插入排序四、归并排序五、快速排序六、堆排序七、常见排序算法的稳定性一、冒泡排序从左到右不断交换相邻逆序的元素,在一轮的循环之后,可以让未排序的最大元素上浮到右侧。在一轮循环中,如果没有发生交换,就说明数组已经是有序的,此时可以直接退出。package Review;/* * * 稳定,时间复杂度O(n2),空间...原创 2019-03-04 15:27:34 · 863 阅读 · 0 评论 -
【数据结构】二分查找
二分查找package codingTest3;public class binarySearch { public static int binarySearch(int[] arr, int key) { int start = 0; int end = arr.length; int mid = start + (end - start) / 2; whi...原创 2019-03-06 21:32:42 · 142 阅读 · 0 评论 -
【数据结构】队列(顺序队列、链式队列)
本文章参考了以下作者的博客:https://www.cnblogs.com/smyhvae/p/4793339.htmlhttps://blog.csdn.net/qq_38410730/article/details/79587711一、队列的定义:1、术语: 队列(Queue):是一种只允许在表的一端进行插入或删除操作的线性表。队列的数据元素以及数据元素间的逻...原创 2019-03-03 21:11:19 · 401 阅读 · 0 评论 -
【数据结构】递归
递归需要找到程序的出口,即算法停止递归的条件递归需要我们去发现逻辑的相似性,将问题划分为更小的问题,减小问题的规模。递归leetcode:斐波那契数列:package codingTest2;public class Fibonacci { public static int Fibonacci(int n) { if(n <= 2) { return...原创 2019-03-03 16:54:51 · 191 阅读 · 0 评论 -
【数据结构】字符串
leetcodeReverse String (反转字符串)https://leetcode-cn.com/problems/reverse-string/package codingTest4;public class reverseString { /* * 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。...原创 2019-03-08 17:16:31 · 109 阅读 · 0 评论 -
【数据结构】哈希表
本文参考了https://blog.csdn.net/pcwl1206/article/details/83582986 。对哈希表知识点进行了梳理。感觉有一定难度。一、哈希表:1、基本定义: 散列表(Hash Table,又叫哈希表),是根据关键码值(Key Value)而直接进行访问的数据结构。2、使用哈希表的查找算法:使用哈希函数:将被查找的键转化为数组...原创 2019-03-08 17:14:24 · 164 阅读 · 0 评论 -
【数据结构】堆栈(顺序栈、链式栈)
一、栈的定义1、术语:栈(stack):是一种只允许在表的一端进行插入或删除操作的线性表。栈顶:表尾端,即表中允许进行插入和删除操作的一端称为栈顶。栈顶是动态的,它由一个称为栈顶指针的位置指示器指示。栈底:表头端,即栈的最下面的那一端称为栈底。空栈:没有元素的栈进栈或入栈:堆栈的插入操作出栈或退栈:堆栈的删除操作2、栈的特点: “后进先出”,因此,...原创 2019-03-03 14:53:45 · 1879 阅读 · 0 评论 -
【算法】最长回文子串
题目 回文串(palindromic string)是指这个字符串无论从左读还是从右读,所读的顺序是一样的。简而言之,回文串是左右对称的。所谓最长回文子串问题,是指对于一个给定的母串。从所有的为回文串的子串a, ded, cdedc, bcdecdb中;找出最长的那一个bcdecdb。但是该如何判断子串是否回文然后找出最长者呢?解答一、暴力求解(时间复杂度O(n^3))...原创 2019-09-22 21:05:21 · 324 阅读 · 0 评论