- 博客(10)
- 收藏
- 关注
原创 day04-链表part2
想法:虚拟节点,链表的增删改都可以用到虚拟节点,2个节点相互交换,需要借助前面一个节点来操作,找到遍历条件,通过画图确定交换逻辑。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
2024-05-30 20:59:18
223
原创 day03-链表part1
想法:添加节点是在给定下标节点的前面插入,所以要用到下标节点的前一个节点指针,删除给定下标节点也要用到前一个节点指针,所以可以用虚拟头节点。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]想法:虚拟头节点,遍历链表时,先拿出一个变量来存遍历起始指针,然后用这个变量进行遍历,注意找好遍历条件。示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL。题意:删除链表中等于给定值 val 的所有节点。
2024-05-27 10:26:03
183
原创 数组-双指针&滑动窗口
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。想法:拿个新数组装平方后的值,因为平方后的最大值在数组两边,每次比较两边的平方值,大的放新数组里。拿2个指针从两边往中间走,谁的平方值大,谁就走一格。给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。想法:滑动窗口也是双指针的一种特定形式,连续子数组,联想到滑动窗口,窗口起始和终止指针的移动是关键。
2024-05-24 15:45:00
294
1
原创 day01-链表704&27
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。leetcode704-二分查找。
2024-05-22 19:46:49
272
1
原创 tcp&ip网络编程笔记
socket()函数中第二个参数是指定数据传输方式,根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字 因为 TCP套接字是面向连接的,因此又称基于流 (stream )的套接字 TCP Transmission Control Protocol (传输控制协议)的简写,意为"对数据传输过程的控制" .计算机之间网络数据的传输除了需要硬件部分,软件部分则是由OS提供的套接字(socket,直译为插座,网络连接,就像插口和插座一样,一方插,一方被插)部件实现的。
2024-04-01 18:35:57
702
1
原创 mybatis中mapper实现及事务实现原理
jdk动态代理实现,mapper是操作数据库的代理对象,是从SqlSession中获取,SqlSession是暴露给我们的操作数据库的API库Configuration是全局配置类,在mybatis启动时,会把所有配置信息加载进这个类中,其中也包括mapper接口的代理对象。在mybatis启动时,会扫描mapper接口并通过一个映射注册器类(MapperRegistry)注册mapper接口的代理对象工厂到一个这个类的属性map中。
2024-02-25 16:30:29
1011
原创 mybatis二级缓存执行流程
在mybatis启动时会加载并解析配置文件,其中就会解析二级缓存的可选项配置,由此是否生成二级缓存,下面这段代码就是解析xxxMapper.xml文件中的子标签来生成二级缓存默认的二级缓存对象是PerpetuateCache,并把缓存封装进MapperStatement,所以一个MapperStatement对应一个二级缓存,一个MapperStatement就是存储一个xxxMapper.xml文件中的信息PerpetualCache内部的缓存其实就是个HashMap。
2024-02-25 11:41:23
232
原创 MyBatis学习笔记
执行sqlsession:参数有两个(statementId和参数对象)根据statementId,去Configuration中的MappedStatement集合中查找 对应的MappedStatement对象;取出MappedStatement中的SQL信息;取出MappedStatement中的statementType,用来创建Statement对象;
2024-01-10 21:20:45
1099
原创 Netty学习笔记
Netty提供非阻塞的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。核心架构:可扩展的事件模型统一的通信api,简化了通信编码零拷贝机制与丰富的字节缓冲区传输服务:支持socket以及datagram(数据报)http传输服务In-VM Pipe (管道协议,是jvm的一种进程)http 以及 websocketSSL 安全套接字协议支持Google Protobuf (序列化框架)支持zlib、gzip压缩支持大文件的传输。
2023-11-25 17:59:43
890
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人