Noflowcloud-Fluid
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

leetcode:最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。 int getMin() 获取堆栈中的最小元素。 示例 1: 12345678910111
2025-07-24
#leetcode

leetcode:环形链表分成三等份

遇到了之前某度的一道链表题,虽然只是寥寥几字但却属实不简单,特将做题思路记录下来,能力有限,如果理解有误还请大佬指出 题目描述给一个环形链表,请你将他三等分 思路分析对于边界值的考虑是否满足至少三个节点的条件,对于环形链表需要注意将环断开if (!head) {return [null, null, null];}// 当前节点与下一节点相同,说明只有一个节点if (!head
2025-07-23
#leetcode

146:LRU缓存

说说怎么背这道题。 需要运用 双端队列和哈希表,这是一种复合数据结构,如python中的OrderedDict哈希表只是根据key,能找到对应的node,即<key,node*>双端队列是双值双指针的形式,key,value,*prev,*next哈希表的操作,API已经提供了,现在就是看自己创建双端队列,并看其需要哪些操作。python中API叫 move_to_end,所谓move
2025-07-23
#leetcode

List一些问题

引言在Java集合中,ArrayList是最常用到的数据结构,无论是在日常开发还是面试中,但是很多人对它的源码并不了解。下面提问几个问题,检验一下大家对ArrayList的了解程度。 ArrayList的初始容量是多少?(90%的人都会答错) ArrayList的扩容机制 并发修改ArrayList元素会有什么问题 如何快速安全的删除ArrayList中的元素 接下来一块分析一下ArrayLi
2025-07-20
#Java

右视图

199. 二叉树的右视图 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: **输入:**root = [1,2,3,null,5,null,4] 输出:[1,3,4] 解释: 示例 2: **输入:**root = [1,2,3,4,null,null,null,5] 输出:[1,3,4,5] 解释:
2025-07-11
#leetcode

讲解#大括号和$大括号

Mybatis的Mapper映射文件中,有两种方式可以引用形参变量进行取值: #{} 和 ${}。本文将简述两种方式的区别和适用场景 取值引用#{} 方式#{}: 解析为SQL时,会将形参变量的值取出,并自动给其添加引号。 例如:当实参username=”Amy”时,传入下Mapper映射文件后 12345...... <select id="findByName&
2025-07-10
#Java

原始数据类型不能为null

在 Java 中,原始数据类型(基本数据类型)不能为 null,这是由 Java 的语言设计和类型系统决定的。以下是详细解释: 1. 基本数据类型与引用类型的区别Java 的数据类型分为两类: 基本数据类型(Primitive Types):包括 int、double、boolean 等,它们是值类型,直接存储具体的数值(如 int 存储整数,boolean 存储 true 或 false)。
2025-07-05

为什么使用可重入锁

在 Java 并发编程中,可重入锁(Reentrant Lock) 是一种核心的同步机制,其设计目的是为了解决多线程环境下资源竞争、死锁等问题,同时提升代码的灵活性和可维护性。以下是 Java 并发编程需要实现可重入锁的详细原因和原理: 1. 为什么需要可重入锁?(1) 避免线程因重复请求锁导致的死锁 问题场景:如果一个线程在持有锁的情况下再次请求同一把锁,且锁不支持可重入性,线程会因为无法获取
2025-07-05
#并发编程

可重入锁的引入:不可重入锁中的死锁问题

重入锁(ReentrantLock),顾名思义,就是支持重复进入的锁,它表示该锁能够支持同一个线程对一个资源的重复加锁。也就是说,如果某个线程试图获得一个已经由它自己持有的可重入锁,那个这个请求就会成功。 相反,不可重入锁就是指该锁不支持同一个线程对一个资源的重复加锁,由于 Java 中并没有现成的可重入锁可供使用,下面简单实现一个: 123456789101112131415public cla
2025-07-05
#并发编程

leetcode:删除链表的倒数第N个节点

s双指针想象有一把长度固定的尺子,左端点在链表头部,右端点在正数第 n 个节点。向右移动尺子,当尺子右端点到达链表末尾时,左端点就在倒数第 n 个节点。 由于需要删除节点,我们需要找倒数第 n 个节点的前一个节点(倒数第 n+1 个节点),这样才能做删除操作。 修改:左端点在链表头部,右端点在正数第 n+1 个节点。向右移动尺子,当尺子右端点到达链表末尾时,左端点就在倒数第 n+1 个节点。 细节
2025-07-03
#leetcode
123

搜索

Hexo Fluid