自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 我的创作纪念日

祝大家生活开开心心,一学就会,offer拿到手软,也祝自己天天开心,无忧无虑!

2024-07-30 11:47:35 272 1

原创 【JavaEE】HTTP(3)

引入非对称加密并不是针对数据本身加密,而是针对对称加密的密钥加密,使密钥可以不被外界知晓的传输给服务器,真正对数据加密的还是对称加密的密钥,这样服务器本身就持有公钥,而客户端就持有私钥(这个私钥每一个客户端都是一样的,这个私钥是服务器在三次握手期间传输给各个客户端的),引入了非对称加密还不能完全解决传输安全,还会有中间人攻击。对称加密就是一个密钥,解密和加密都是通过这个密钥,客户端需要将数据传输给服务器就需要这个对称加密的密钥进行加密,服务器对客户端发送过来的数据进行解密也是通过这个密钥解密的。

2024-07-30 11:44:01 1481 14

原创 【JavaEE】HTTP(2)

主要是“兼容”,在上古时期,浏览器有许多,并且各个浏览器的版本也不一样,有的浏览器只能看文字,有的能看图片,还有些能看视频以及音频等等,用户访问的浏览器的版本也不同,程序猿就需要根据这个UA提供的浏览器版本号来返回相对应的浏览器版本的响应,这样可以给用户带来更好的体验感。Cookite怎么存储的:按照不同的域名分别存储在硬盘上,不同的域名之间的Cookite互不干扰,利用键值对存储文本,键和值都是自定义的。其实这里的请求报头里面的东西都是键值对,都是标准规定的内容。我们再参考一下utf8码表。

2024-07-16 23:35:49 1352 15

原创 【JavaEE】HTTP协议(1)

🤡🤡🤡个人主页🤡🤡🤡🤡🤡🤡JavaEE专栏🤡🤡🤡🤡🤡🤡上一篇文章:【JavaEE】网络原理——网络层+数据链路层🤡🤡🤡网页——服务器的交互手机app——服务器的交互http协议是一种"一问一答"的协议,请求和响应是一一对应的。抓包工具本质上是一种用于监控和分析网络流量的工具,它可以捕获并记录通过网络传输的数据包。http抓包工具——Fiddler能够把网络上传输的http数据获取到并且显示出来用Google或者Bing直接搜索Fiddler,以下就是操作流程:

2024-07-16 23:31:01 704 3

原创 【JavaEE】网络原理——网络层+数据链路层

路由选择其实就是找从源IP到目的IP的路径,这里类似于我们生活中的地图导航,规划出一个路线"最优解",但是在我们路由这里就不是"最优解"而是"较优解"其实就是我们网络路线复杂程度很高,并且路由不是对全局网络路线都很了解,只对周围路由的网络线路了解。这里就需要一个新的概念子网掩码,这个子网掩码就是帮助我们来设置网络号和主机号的,子网掩码左边部分全为1,右边部分全为0,这些01是指二进制,而且01不能交替。对于源IP找目的IP是"探索性"的方式寻找,在寻找的过程中会借助"路由表"来寻找目的IP。

2024-07-12 22:00:00 966 1

原创 【JavaEE】网络原理——传输层协议

端口号:概念:是描述同一主机不同程序的同一时刻,同一个协议下,同一个主机上的端口号只能绑定一个应用程序,但是在不同的协议下是可以一个端口号绑定多个应用程序,无论是否是同一个协议一个应用程序都可以有绑定多个端口号。在业务中会经常见一个服务器中会有多个端口号给客户端提供业务功能的这样的端口称为"业务端口"程序猿还需要对这个服务器进行更精细的控制,如让服务器重新加载配置/开启某一个功能/重新启动/重新加载数据/修改某个选项设定,服务器就会提供一个端口号“管理端口”

2024-07-12 17:43:54 1778

原创 【JavaEE】网络编程——UDP

DatagramPacket对象表示的就是一个数据报,UDP数据报是由报头和载荷组成的,报头中的有IP地址和端口号这些都是DatagramPacket类的属性,而载荷这个类没有提供,所以需要程序猿自己去提供,所以就像和尚化缘一样,你需要自己提供一个化缘的碗,然后各家将食物放到碗中,由于数据报的本质就是一个二进制数据,所以我提供了一个字节数组来作为这个载荷存储数据。Socket api都是系统提供的,不同的系统提供的api是不一样的,但是java中对于系统的这些api进一步封装了。

2024-07-11 20:00:00 1090

原创 【JavaEE】网络编程——TCP

网络编程的目的是为了跨主机通信,socket==》操作系统提供的网络编程的API就称为"socket"API。

2024-07-11 19:00:00 1086

原创 【JavaEE】网络初识

标识一个主机上不同的应用程序,每一个程序被启动系统就会分配一个端口号,也可以自己自定义一个端口号,但是不建议这样操作,因为你不知道你自己设定的这个端口号是否和本主机其他应用是否重复了,而且就算你可以避免你主机上所有的端口号,如果面对的是客户呢,他知道你服务器中其他的端口号吗?数据链路层:网络层调用数据链路层的api,将"传输层数据包"构造为"数据链路层数据包",在数据链路层有典型的以太网协议,在原来的"网络层数据包"头部增加一个帧头并且在"网络层数据包"尾部增加一个帧尾就构成了"数据链路层数据包"。

2024-07-10 22:50:00 1144 4

原创 【JavaEE】文件IO

算的,文件夹算目录文件,在我们计算机中有许多文件和目录,而且这些目录还有些嵌套的,为了将这些目录和文件给整理在一起,则计算机有个体系来整理这些文件与目录,可以看成一个N叉树。那我们怎么找到我需要的文件呢,那需要一个机制,可以帮我们迅速定位到目标文件,那么需要定位到目标文件,你肯定需要一个路径来实现吧。上述的write操作,都会覆盖之前的数据,为了不覆盖之前的数据,这个覆盖操作不是write造成的,而是打开文件这个操作造成的,在打开文件的构造方法中,加一个参数true,那么就不会覆盖之前的数据。

2024-07-10 22:43:57 1034 10

原创 【JavaEE】多线程进阶

CAS这是一个比较交换指令,而且这一指令详细的就是读取内存,比较是否相等,修改内存三个步骤,而与之前线程安全问题中多个线程对同一个变量进行修改操作是一样的,也是上述这三个步骤,但CAS这三个步骤是打包一起的是原子的,而对变量修改不是原子的,所以需要加锁,才能保证线程安全,所以CAS在某种程度也可以实现锁的功能。

2024-07-07 21:09:08 1100 12

原创 【JavaEE】多线程代码案例(2)

创建一个类,表示一个任务(Runnable 任务本体 time任务的执行时间)引入数据结构来管理多个任务(用的是优先级队列,省去遍历的开销)引入扫描线程,不停的循环获取队列队首任务,判定是否到时间,到时间就执行,并且出队列没到时间就阻塞。引入锁,针对队列出和入的操作解决忙等问题,引入wait和notify,队列为空wait(死等)队首任务没到时间wait(带有超时时间)这里不要用sleep(sleep通过interrupt唤醒是非常规手段,sleep不会释放锁,会影响后续插入任务)

2024-07-04 21:02:49 1371 12

原创 【JavaEE】多线程代码案例(1)

原因:懒汉模式中的实例化对象是什么时候需要用就什么时候调用getIstance,多个线程同时去调用getIstance的时候,getIstance方法中的赋值是一个修改操作,此时就会发生多个线程对同一个变量进行修改操作就会引起线程不安全。靠我们程序猿本身来保证,这样肯定是不现实的,所以需要编译器来帮我们来做一个强制的检查,通过一些编码上的技巧,使编译器可以自动发现我们的代码是否有多个对象,并且在尝试创建多个实例的时候,直接编译出错。总结:在使用wait的时候最好搭配while不要搭配if。

2024-06-30 19:48:01 1066 14

原创 【软件测试】概念篇

能将用户需求一步一步的分析并且可执行的就叫软件需求,并且软件需求也是开发人员和测试人员工作的依据。引入的目的:为了减少各个简短会遗留的风险问题,避免把问题留给测试阶段。开始——需求分析——计划——设计——编码——测试——运行维护——结束。特点:先将项目的基本大致结构上线,然后再慢慢的将这些功能完善。规范的流程是在时代的演变下逐渐成型这种就是开发模型。需求分析——计划——设计——编码——测试——运行维护。特点:螺旋模型中各个阶段都引入的风险分析+原型。特点:每一个流程只执行一次,线性的开发流程。

2024-06-26 09:37:24 972 13

原创 【软件测试】认识测试

软件测试就是验证软件产品特性是否满足用户的需求功能性能界面易用性。

2024-06-23 20:16:29 483 15

原创 JavaEE多线程(2)

现有t1线程t2线程和locker1锁locker2锁, locker2锁要对t1线程中内容加锁,但同时locker2锁对t2线程还未解锁,所以t1线程需要阻塞等待,而现在locker1锁也要对t2线程中的内容加锁,但是locker1对t1线程还未解锁,所以t2线程需要阻塞等待,这样就导致你等我,我等你的死锁现象`通过条件,判断当前逻辑是否能够执行,如果不满足条件不能执行,那么就主动进行阻塞(wait)让其他线程来调度cpu的资源,等到条件满足的时候,再让其它线程(阻塞的线程)来唤醒。

2024-06-20 16:37:40 1301 18

原创 【JavaEE】多线程(1)

线程(Thread)是一个轻量级进程,与"进程"相比在创建和销毁上的开销更小,主要原因是:一个进程被创建 系统会给进程分配资源,而一个进程可以有多个线程,这些线程不需要独自一个一个被系统分配资源,它们可以共享系统为进程分配的资源,在销毁的时候也只需要销毁进程的资源即可,这样下来减少了创建与销毁的开销,线程不仅共享进程的资源,而且每一个线程都有自己的属性.后台线程:后台线程结束了,不会影响整个线程的进度,但前台线程结束了,整个线程就结束了,那么自然后台线程也就结束了。

2024-05-31 13:01:24 1425 25

原创 【JavaEE】计算机是怎么工作的

人们的生活无时无刻不被计算机影响,现如今大部分计算机都应用冯诺依曼体系结构,这个"神"为我们计算机行业做出了巨大的贡献。

2024-05-17 11:01:20 637 30

原创 【数据结构练习题】Map与Set——1.只出过一次的数字2.复制带随机指针的链表3.宝石与石头4.坏键盘打字

新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。第一步:遍历原链表,并且同时创建以恶搞相同规格的链表,将原链表的结点和新链表的结点利用key-value模型的形式存储在Map中。第二步:接着遍历期望输出的字符串数组与Set集合比较,不相同则放入一个新的Set集合中setBorken,相同则不需要放入。给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。

2024-05-12 00:00:00 1236 45

原创 【数据结构】Map与Set(2)

设有n个d位数,每一位可能有r种不同的符号,这r种不同的符号在各位上出现的频率不一定相同,可能在某些位上分布比较均匀,每种符号出现的机会均等,在某些位上分布不均匀只有某几种符号经常出现。首先,我们需要明确一点,由于我们哈希表底层数组的容量往往是小于实际要存储的关键字的数量的,这就导致一个问题,冲突的发生是必然的,但我们能做的应该是尽量的降低冲突率。我们还是回到这个图,我们观察这个图发现Map与Set这两个接口的底层都是由两种数据结构实现的,分别是Tree与Hash,这里的Tree就是上篇文章讲的搜索树。

2024-05-09 23:17:59 941 61

原创 【数据结构】Map和Set(1)

Map与Set的底层有两种结构实现,一种是搜索树(TreeMap与TreeSet),还有一个就是哈希表(HashMaP与HashSet),接下来我们先了解搜索树这个底层结构。

2024-04-27 17:11:19 3703 87

原创 【数据结构练习题】堆——top-k问题

如果是找出最小的数的话,直接将大堆的堆顶元素弹出就是最小的数了,反之求最大的k个数以及最大的数只要将前面建大堆的步骤改为建小堆即可。找出数组中最小的k个数,比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。求最小k个数,需要建立大堆,反之求最大k个数则建立小堆,这里我们以求最小k个数为例。4.直到最后将大堆中的元素打印即可。

2024-04-21 10:31:49 2108 91

原创 【数据结构练习题】二叉树(1)——1.相同的树2.另一颗树的子树3.翻转二叉树4.平衡二叉树5.对称二叉树

给你两棵二叉树 root 和 subRoot ,检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树,如果存在返回 true 否则返回 false。同样去用子问题的思想去剖析这个问题,先判断这个 subRoot 是不是root的子树,然后再去通过递归的方式判断是不是root左右子树的子树。只要确定根结点结构上和值都是相同的,后面直接去递归根结点的左右子树即可。

2024-04-18 18:57:31 1805 64

原创 【数据结构】常见的排序算法

🧧🧧🧧🧧🧧个人主页🎈🎈🎈🎈🎈🧧🧧🧧🧧🧧数据结构专栏🎈🎈🎈🎈🎈🧧🧧🧧🧧🧧【数据结构】优先级队列——堆🎈🎈🎈🎈🎈排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称

2024-04-13 20:57:10 2961 77

原创 【数据结构练习题】队——1.用队实现栈2.用栈实现队

首先,要实现用栈去模拟一个有入队,出队,peek,判断栈是否为空这些功能的队,我们用一个栈也是不能模拟出队列的,我们用两个栈来模拟这个队列,但是这里和队列实现栈的两个队列不一样,这里的两个栈,我们分别设置一个入队的栈,一个专门出队的栈。首先,要实现用队去模拟一个有压栈,入栈,peek,判断栈是否为空这些功能的栈,用一个简单的队列是不能实现这个栈的,用一个双向队列是可以实现这个栈的,但我们今天不用双向队列来实现,我们用两个简单队列来实现这个栈。请你仅使用两个栈实现先入先出队列。

2024-04-10 21:37:58 1977 55

原创 【数据结构】优先级队列——堆

Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue。使用时必须导入PriorityQueue所在的包,即:PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出ClassCastException异常。

2024-04-01 22:11:12 2223 82

原创 【数据结构】非线性结构——二叉树

前面我们都是学的线性结构的数据结构,接下来我们就需要来学习非线性的数据结构,我们先来学第一个非线性的数据结构——树。每一门学科都来自生活,从生活中学习,我们要学的树就是来自生活,这种数据结构就像我们大自然中的树倒立着一样,所以我们取名为树。

2024-03-25 23:54:37 2054 82

原创 【数据结构】受限制的线性表——队列

上一章我们讲了一种特殊的线性表只能在表尾进行插入和删除操作,接下来我们讲一个和栈很相似的数据结构,它也是一种特殊且所限制的线性表,它是只能在表头删除操作在表尾进行插入操作。

2024-03-20 15:23:23 2742 83

原创 【数据结构练习题】栈——1.括号匹配 2.逆波兰表达式求值 3.出栈入栈次序匹配 4.最小栈

在学习数据结构的过程中遇到了各种各样类型的题目,我在解答这些题目的时候收获了不少,所以我想开设一个专栏来分享我平时做题的收获,在我分享的题中我采用三步法来阐述,希望大家可以在我的文章有收获,并且能够在评论区中积极讨论更多的解题方法。

2024-03-16 15:55:36 1675 87

原创 【数据结构】特殊的线性表——栈

什么叫栈?要搞清楚这个概念,首先要明白“栈”原来的意思,如此才能把握本质。栈,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。栈这个数据结构是一个特殊的线性表,他只能在栈顶进行增删操作。

2024-03-12 13:23:52 1987 83

原创 【数据结构】从链表到LinkedList类

上一篇文章我们了解ArrayList表的使用,并且模拟了ArrayList表,通过数组的方式来存储数据单元。其底层是一块连续储存的空间,这时候我们发现当我们去插入数据或者删除数据的时候,需要将前后的数据整体向前移动或者向后移动。因此ArrayList是不能满足我们的需求。接下来我们可以来看看即将要学的LinkedList表。

2024-02-28 20:03:38 2323 72

原创 【数据结构】从顺序表到ArrayList类

【说明】ArrayList是以泛型方式实现的,使用时必须要先实例化ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问ArrayList实现了Cloneable接口,表明ArrayList是可以clone的ArrayList实现了Serializable接口,表明ArrayList是支持序列化的和Vector不同,ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector或者CopyOnWriteArrayList。

2024-01-23 16:22:00 2355 85

原创 【Java SE】带你识别什么叫做异常!!!

Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构.if(!throw new userNameException("用户名错误");if(!throw new passWorldException("密码错误");try {System.out.println("用户名输入异常!");System.out.println("密码输入异常!");finally {

2023-12-12 09:40:03 7161 111

原创 【Java SE】带你在String类世界中遨游!!!

由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。这两个类大部分功能是相同的,这里介绍 StringBuilder常用的一些方法:从上述方法可以看出:String和StringBuilder最大的区别在于String的内容无法修改,而StringBuilder的内容可以修改。频繁修改字符串的情况考虑使用StringBuilder。这些方法我就不一一解释了,和上述String类方法差不多。

2023-11-29 21:55:00 4951 97

原创 【Java SE】 带你走近Java的抽象类与接口

上一篇文章我们讲了Java中的两大特性:继承和多态,在多态中父类的方法被子类重写,在程序执行的时候,因为动态绑定的原因不会去访问父类的被重写的方法,那么父类的方法里面的内容是不是可以直接不写 ,这样使得代码简洁。不写要不要加什么关键字呢?接下来让我们来学习抽象类吧!

2023-11-25 21:44:59 2550 73

原创 【Java SE】如何解读Java的继承和多态的特性?

什么是继承和多态,为什么被称为Java三大特性,这两大特性为我们程序员带来了什么影响呢?是让复杂的代码简化了,还是为程序员写代码提供了多样性呢?那让我们一起来揭开这层神秘的面纱吧!

2023-11-20 10:13:12 1759 96

原创 【Java SE】 详解java访问限定符

我定义一个Student类,在Main类中实例化Student类的对象,然后去访问Student类中的成员变量name,显示编译错误,通过这个现象推出一个想法说明由private修饰的成员变量,在另一个类中无法被直接访问。结论:由private修饰的成员变量只能在自己类中被直接访问,在其他类中是不可以被直接访问的,如果要访问成员变量只能通过间接的方法去访问。1.private:只能在自己类种被访问,出了自己类就无法被直接访问,但可以间接被访问。带你走进Java中的继承。

2023-11-20 10:12:08 700 46

原创 Java SE 封装、包、static关键字和代码块

在文件的最上方加上一个 package 语句指定该代码在哪个包中.包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式(例如 com.bao.www )包名要和代码路径相匹配. 例如创建 com.bao.www 的包, 那么会存在一个对应的路径 com.bao.www 来存储代码.如果一个类没有 package 语句, 则该类被放到一个默认包中.

2023-11-13 23:56:21 961 73

原创 JavaSE 类与对象

我们之前学的都是面向过程,面向过程研究的是对单个对象的一种方法实现过程,比如求一个数的阶乘,强调的是怎么实现这个方法的过程,但对我们以后来说,如果想要应用到更广的层面,不能只是学习一个方法的过程,而是通过用对象的方法与其他对象建立联系来实现一个项目,那么怎么让对象与对象建立联系呢?我们就需要学习面向对象的相关知识。2.1 简单认识类``就我而言,类是指描述一个物品的大致摸样,是一个比较抽象的东西,类是不实的,也可以说是一个抽象的概念。

2023-11-11 15:04:42 1222 61

原创 数组的定义与使用

数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。数组在内存存放数据像上面的图一样,存储数据在内存中时连续的。

2023-11-07 19:57:26 426 51

图书管理系统(SpringBoot+SpringMVC+SpringAOP+Spring+IoC )

1.概述 本图书管理系统基于SpringBoot、SpringMVC、SpringAOP和Spring IoC等核心技术构建,旨在提供一个高效、灵活且可扩展的图书管理解决方案。系统具备用户管理、图书信息管理、借阅管理和统计分析等功能模块,通过友好的界面和高性能的后台支持,满足图书馆和书店等场景的管理需求。 2.技术栈描述 Spring Boot: 提供了一个快速构建项目的脚手架,简化了配置和部署。 集成了常用的第三方库和框架,减少了开发复杂度。 Spring MVC: 作为系统的Web框架,负责处理HTTP请求和响应。 提供了强大的路由机制和视图解析功能,实现了前后端的解耦。 Spring AOP: 实现了面向切面的编程,便于实现日志记录、权限校验和事务管理等横切关注点。 提高了代码的可维护性和可读性。 Spring IoC: 提供了依赖注入机制,促进了松耦合设计。 管理对象的生命周期和依赖关系,提高了开发效率。 通过上述功能和场景,本图书管理系统展示了Spring技术栈在企业级应用中的强大优势和广泛应用前景。系统不仅提高了开发效率,还为图书管理提供了全面的解决方案。

2024-08-02

java数据结构:顺序表+链表+栈+队+堆+二叉树+常见排序+map+set代码与板书

一、概述 Java 数据结构在计算机科学和编程中起着至关重要的作用。本文将介绍顺序表、链表、栈、队列、堆、二叉树、常见排序算法、Map 和 Set 的基本概念、实现代码及其应用场景。这些数据结构和算法是编写高效程序的基础,对于理解和解决复杂问题非常重要。 1.顺序表 (ArrayList): 概念: 基于数组实现,支持随机访问。 2.链表 (LinkedList): 概念: 由节点组成,每个节点包含数据和指向下一个节点的引用 3.栈 (Stack): 概念: 后进先出 (LIFO) 的数据结构 4.队列 (Queue): 概念: 先进先出 (FIFO) 的数据结构 5.堆 (Heap): 概念: 完全二叉树,分为最大堆和最小堆。 6.二叉树 (Binary Tree): 概念: 每个节点最多有两个子节点的树结构。 适用人群 学生: 计算机科学专业学生,可以通过学习这些数据结构和算法,打好编程基础。 准备编程竞赛和面试的学生。 软件开发者: 需要在实际项目中应用高效数据结构和算法的开发者。 想要提升代码性能和优化程序的开发者。 技术面试者: 准备技术面试的求职者,需要熟练掌握常见的

2024-08-02

java贪心算法的解题思路+代码

内容概要 在这篇文章中,我详细介绍了贪心算法的基本概念和常用策略,并通过多个经典的实际例子展示了贪心算法在解决各种问题中的应用。您将学习到: 贪心算法的核心思想和特点。 如何识别和设计贪心策略以解决特定问题。 使用Java编程语言实现贪心算法的具体代码示例。 对不同问题的优化思路和代码实现过程的详细解析。 适用人群 这篇文章适合以下几类人群: 编程初学者:希望了解并掌握贪心算法的基本概念和实现方法。 计算机科学专业学生:正在学习算法课程并需要更多实际例子的同学。 软件开发人员:需要在项目中应用贪心算法解决具体问题的工程师。 算法爱好者:对算法研究感兴趣并希望深入理解贪心算法的朋友。 使用场景 这篇文章适用于多种学习和工作场景,包括但不限于: 算法学习和复习:作为学习贪心算法的重要参考资料,帮助您巩固和提升算法知识。 编程面试准备:为准备编程面试的您提供具体的解题思路和代码实现,帮助您应对算法相关的面试题目。 项目开发实践:在实际项目中需要使用贪心算法时,提供可直接应用的代码示例和优化方案。 希望这篇文章能为您提供实用的帮助和启发,欢迎阅读并分享您的宝贵意见! 祝学习愉快!

2024-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除