- 博客(9)
- 收藏
- 关注
原创 力扣387题:字符串中的第一个唯一字符
hash map方案虽然更通用,但是由于拆装箱的开销我们不得不考虑,所以我们选择使用数组方案数组方案也有其自身局限性:当我们需要查找的字符超过ascll码表的范围。
2025-05-18 12:22:18
346
原创 力扣135题:只出现一次的数
哈希表:哈希表天然适用于去重的操作,并且键的查找时间为O(1),但是哈希表不维护数据的顺序,我们可以在需要查找,去重,删除操作时使用哈希表。异或操作:当要求找到唯一的出现偶数次个元素时,将出现局限性,需要做出适当修改。我们最开始抽象问题,使用哈希表来做这道题。再次抽象后发现,问题和异或的规则惊人相似。将问题层层抽象,看透问题的本质是什么,即可找到最优解。
2025-05-16 16:45:00
237
原创 力扣217题:存在重复元素
经查阅资料,我们所使用的值查找函数containsValue函数在查找值是否存在时将会遍历一遍所有已经存储在表中的数据,该函数的时间复杂度为O(n)。一、题目,给定一个数组nums,如果一个数在数组nums中出现两次,则返回true,若所有数在数组中均为唯一的,则返回false。我们注意到,题目的目的就是检测是否所有数字都唯一,这非常符合我们所学过的哈希表的特性。1. 数据结构选择:使用哈希表将时间复杂度从O(n^2)降低至O(n)。因此我们的总体算法时间复杂度看似下降至O(n),实则还是O(n^2)。
2025-05-15 15:48:21
421
原创 java IO流(学习笔记)
首先要明白,FlieWriter和OutoutStream的write方法是不同的——后者是直接写到文件中(因为是字节):后者是写到内存中的缓冲区,之后再刷新到文件中(因为是字符)定义了输入流的一些共性方法:read(),close(),以及输出流的一些共性方法:writer(),flush(),close()。而flush和close都有立刻把缓冲区的数据刷新但新文件中的作用——而close还会释放资源,流对象就无法使用了。输入流和输出流得接收者可以是文件,内存,硬盘,网络连接等。
2024-10-13 19:06:51
140
原创 STC89C52单片机 串口通信(学习笔记)
串口是一种通信接口,可以让两个串口设备互相通信,传输数据 吧啦吧啦(这句是废话)。首先,我们需要一个CH340模块,这个模块是USB转串口的模块大概长这样子有些电脑也自带串口通信接口(电平标准与51单片机不一致),这里不作讨论。简单的双向串口通信由两根线(TXD发送端和RXD接收端)TXD和RXD要交叉连接当只需要单项的数据传输时可以只接通一根线当电平标准不一致时,需要加电平转换芯片TTL电平:+5v表示1,0v表示0;RSS232电平:-3v- -15v表示1,+3-+15表示0;
2024-10-08 22:55:26
1087
原创 STC89C52单片机中断系统(学习笔记)
当定时器(又叫计数器)THx/TLx溢出时,溢出标志位TFx被置位(1),定时器中断发生。模式0:13位计数器模式,此时只使用TL的底5位和TH的全部用来计数,范围为:0~(2^13-1),标志位置位后需手动赋值给寄存器。串口中断:由两个中断请求标志位:RI(接收标志位)和TI(发送标志位),任何一个被置位中断都将发生。模式1:16位寄存器模式,TH,TL全部用来计数,最大值为:65535,除此之外和模式0一样。所有中断源都具有4个中断优先级(0,0最低,1,1最高)模式3:该模式下计数器无效,停止计数。
2024-10-07 16:30:27
1048
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人