![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
qq_40955824
努力,加油。☀️
展开
-
Newcoder---汽水瓶的递归方法和规律方法
题目描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?...原创 2019-04-16 21:46:53 · 269 阅读 · 0 评论 -
数据结构-----哈希表
哈希表概念哈希表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码散值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表Java程序在访问数据库时候如果频繁的访问数据库,但是有的数据不用每次都查询数据库,这里可以采用缓存解决这个问题。利用缓存的产品:Redis,Mem...原创 2019-08-04 18:50:44 · 111 阅读 · 0 评论 -
数据结构---栈(java)
1.栈的介绍栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放...原创 2019-07-22 21:34:58 · 151 阅读 · 3 评论 -
数据结构---约瑟夫环问题
单向循环链表单向循环链表:在单向链表中,头指针是相当重要的,因为单向链表的操作都需要头指针,所以如果头指针丢失或者破坏,那么整个链表都会遗失,并且浪费链表内存空间。构建一个单向的环形链表思路先创建第一个节点, 让 first 指向该节点,并形成环形后面当我们每创建一个新的节点,就把该节点,加入到已有的环形链表中即可.遍历环形链表思路先让一个辅助指针(变量) cur,指向he...原创 2019-07-22 15:06:12 · 782 阅读 · 0 评论 -
数据结构---双向链表
双向链表双向链表和担心链表的区别单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。单向链表不能自我删除,需要靠辅助节点 ,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是找到temp,temp是待删除节点的前一个节点.单向链表双向链表1.遍历方法和 单链表一样,只是可以向前,也可以向后查找思路:判断链表是否为空创建一个临时变量...原创 2019-07-21 18:42:57 · 136 阅读 · 0 评论 -
数据结构--单链表(很全哦)
链表链表是以节点的方式来存储,是链式存储(但是在内存中并不是连续存储的)每个节点包含 data 域, next 域:指向下一个节点.链表的各个节点不一定是连续存储.链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定带头的单链表示意图:单链表的实现:分析1:顺序添加Node节点(创建)先创建一个head 头节点, 作用 就是表示单链表的头后面我们每添加一个节点,...原创 2019-07-21 16:19:33 · 228 阅读 · 0 评论 -
数据结构---队列
队列介绍队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出队列的实现队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,fro...原创 2019-07-20 17:18:52 · 162 阅读 · 0 评论 -
数据结构----递归
1.概念:递归就是方法自己调用自己,每次调用时传入不同的变量.2.递归调用的机制当程序执行到一个方法时,就会开辟一个独立的空间(栈)每个空间的数据(局部变量),是独立的.3.递归需要遵守的重要规则执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响, 比如n变量如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据.递...原创 2019-07-29 11:52:45 · 200 阅读 · 0 评论 -
数据结构------稀疏数组
稀疏数组的介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。这样就可以不用记录很多没有意义的数据。它是对二维数组的一种优化(压缩了二维数组)。稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模稀疏数组的应用场景1.使用稀疏数组来保存二维数组(大部分数字为0):...原创 2019-07-19 11:08:31 · 216 阅读 · 0 评论 -
数据结构之堆的简单实现
堆的主要接口包括,堆的初始化,堆的销毁,堆的插入,堆的删除,获取堆顶的数据,判断堆是否为空,求堆的大小,以及堆的冒泡排序。在这里还有堆的简单的数据结构的实现。因为堆是动态增长的,所以实现堆的数据结构里包含一个存放数据的堆的数组data,堆的大小sz,以及堆的容量capacity。#pragma once#include<stdio.h>#include<s...原创 2018-08-29 13:24:30 · 453 阅读 · 0 评论 -
数据结构之栈和队列的实现
1,栈栈(stack)又叫堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶top)进行加入数据(push)和输出数据(pop)的运算。保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照先进后出或者后进先出(LIFO, Last In First Out)的操作顺序。...原创 2018-08-29 20:03:10 · 170 阅读 · 0 评论 -
数据结构之栈和队列的经典面试题
1.实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值)的时间复杂度为O(1)在这个题目中要求要返回一个栈里面的最小值。有两种方法:1). 用两个栈,一个栈存入栈的数据,另一个栈存对应的最小值,如果入栈的顺序为5,8,1,3,4,则存最小值的那个栈存入的数据应该为5,5,1,1,1。2). 与上边一样,用两个栈,一个放数据,另一个放最小值,最小值由结构体组成...原创 2018-08-30 10:37:38 · 232 阅读 · 0 评论 -
Java实现双链表的具体实现加注释
双向循环链表的节点里面包含前指针prev,指向下一个节点的指针next,和节点内容data。因为指向让用户去操作最外边的测试程序,所以用户不用知道有节点的存在,因此把节点设置为内部类。首先用一个接口区罗列要实现的功能,主要包括增加节点,删除节点,判断该节点是否存在,判断链表的大小,判断链表是否为空,获取链表的内容等interface ILink{//定义接口 /** ...原创 2018-11-03 13:54:17 · 170 阅读 · 0 评论 -
机器人走方格--图解版
链接:https://www.nowcoder.com/questionTerminal/e8bb8e68434e42acbcdff0341f2a32c5来源:牛客网有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小于等于12。测试样例...原创 2019-03-16 21:07:10 · 780 阅读 · 0 评论 -
数据结构---二叉树(前中后序遍历以及查找)
1. 二叉树与其他数据结构的比较1.1数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低1.2链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可, 删除效率也很好)。缺点:在进行检索时,效率仍然...原创 2019-08-07 10:32:21 · 2224 阅读 · 0 评论