Java数据结构与算法
文章平均质量分 50
数据结构与算法
风 离
我想就这样牵着你的手不放开
展开
-
01背包问题
❝微信公众号:程序员风离个人博客 : 点我CSDN: 点我欢迎━(`∀´)ノ亻!关注公众号❞动态规划之01背包问题❝问题引出: 「一个背包最大容量为8 现有4个物品 每个物品各自有不同的容量和不同的价值 求在不超过背包最大容量的情况下最大物品价值」如图所示物品编号物品所需容量(weight)物品价值(value)126231034124515❞设 f(k,w) k为背包最大存入物品数量 w 为背包最大容.原创 2021-11-27 16:43:48 · 298 阅读 · 0 评论 -
LeetCode刷题笔记--爱生气的书店老板
题目要求* 今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,* 所有这些顾客都会在那一分钟结束后离开。* 在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。* 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。* 书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续 X 分钟不生气,但却只能使用一次。* 请你返原创 2021-02-23 15:40:20 · 172 阅读 · 0 评论 -
利用头插法实现单链表实现栈
单链表实现栈的压栈弹栈操作~来看看思路先压栈弹栈全部测试代码package 数据结构.栈;/** * Created with IntelliJ IDEA. * * @Auther: 风离 * @Date: 2020/11/05/9:13 * @Description: */public class 链表模拟栈 { public static void main(String[] args) { LinkedList l1=new LinkedList原创 2020-11-05 15:17:28 · 228 阅读 · 3 评论 -
Java环形链表实现约瑟夫问题
我太懒了,上示意图和代码了package 数据结构.链表;/** * Created with IntelliJ IDEA. * * @Auther: 风离 * @Date: 2020/11/01/9:16 * @Description:约瑟夫问题 */public class 单向环形链表 { public static void main(String[] args) { OneWayCircularLinkedList o=new OneWayCir原创 2020-11-01 14:51:33 · 157 阅读 · 0 评论 -
双向链表的增删改查和反向遍历
双向链表:一个节点中既有上一个节点的内存地址又有下一个节点的内存地址,还有数据域实现双向链表的增删改查:首先:我们需要一个节点类来展示节点信息:class HNode{ public String name; public int no;//根据这个编号来查找,修改,删除,添加元素 public HNode next;//下一个节点的信息 public HNode pre;//上一个节点的信息 public HNode(String name, int.原创 2020-10-29 21:54:38 · 357 阅读 · 0 评论 -
关于单链表的增删改查
链表以节点的方式储存数据,是链式存储,每一个节点包含date域和next域:指向下一个节点(节点在空间上不连续,可理解为串珠)单链表:包含头节点,数据域,下一个节点的内存地址下面是一张图:来演示下链表的增删改查:首先定义一个链表类class HeroNode{ /** * 定义英雄编号,姓名,昵称,下一个头结点 */ public int no; public String name; public String nickname;原创 2020-10-24 00:06:37 · 73 阅读 · 0 评论 -
环形队列的实现
由于队列存在空间不能重复利用的问题而造成无法二次插入数据,所以产生了环形队列代码实现:package 数据结构;/** * Created with IntelliJ IDEA. * * @Auther: 风离 * @Date: 2020/10/20/16:13 * @Description: */public class 自己的环形队列 { public static void main(String[] args) { CircleArr c1=new Cir原创 2020-10-20 17:18:41 · 127 阅读 · 0 评论 -
完美实现单向队列
单向队列的数组实现:定义一个数组,给定数组最大长度,定义队列头指针,尾指针,头指针和尾指针相等则表示队列为空,尾指针与数组最大长度相等则表示队列已满代码表示为:package 数据结构;import java.util.Random;/** * 使用数组模拟队列 */public class 队列 { public static void main(String[] args) { ArrQueue arrQueue1=new ArrQueue(10);原创 2020-10-20 15:38:59 · 110 阅读 · 0 评论 -
稀疏数组
关于稀疏数组当一个数组中大部分元素为0时,而该数组又比较大时,可将二维数组转化为稀疏数组保存以达到节省空间的目的1.稀疏数组的建立1.记录二维数组的行列,以及不为0的数的行,列和共有多少个这样的数的总和sum;2.稀疏数组也是一个二维数组,其列包括三行数据:二维数组的行,二维数组的列,二维数组的数通过二维数组行列,值,可以再次转换为二维数组;3.稀疏数组第一行保存二维数组的总 行,列,不为0这样的数的总和sum,故列总共有三个元素;4.从第二行开始保存二维数组的不为0的数的所在行列以及值,所以原创 2020-10-11 23:29:51 · 181 阅读 · 0 评论