摘要: ## 分析 [题目链接](https://leetcode.cn/problems/min-stack/) **栈**是一种**先进后出**的数据结构,对于栈来说,如果一个元素 `a` 在入栈时,栈里有其它的元素 `b, c, d`,那么无论这个栈在之后经历了什么操作,只要 `a` 在栈中,`b, 阅读全文
posted @ 2023-05-24 22:46 秊 阅读(132) 评论(0) 推荐(0)
摘要: # 跳表 ## 由来 二分查找算法的底层依赖是数组的随机访问特性, 所以只能用数组来实现. 但如果数据存储在链表中, 对其稍加改造, 其实也是可以用二分查找的 ## 特性 是各方面都优秀的动态数据结构, 可以支持快速的插入, 删除, 查找操作; 且实现相比于红黑树简单, 甚至某些场合可以代替红黑树 阅读全文
posted @ 2023-05-19 18:21 秊 阅读(15) 评论(0) 推荐(0)
摘要: 在查看集合源码时, 发现许多地方都用到了 a - b < 0, 并注释了 overfolw-conscious code 如: // overflow-conscious code if (minCapacity - elementData.length > 0) grow(minCapacity) 阅读全文
posted @ 2023-04-21 21:35 秊 阅读(30) 评论(0) 推荐(0)
摘要: 在使用 ChatGPT 的 Create chat completion (长对话) 接口中,若不启用 stream 选项,接口返回的格式为: { "id": "chatcmpl-123", "object": "chat.completion", "created": 1677652288, "c 阅读全文
posted @ 2023-04-19 18:27 秊 阅读(1367) 评论(0) 推荐(0)
摘要: 以下摘自源码: Oracle OpenJDK version 1.8.0_331 Cache to support the object identity semantics of autoboxing for values between -128 and 127 (inclusive) as r 阅读全文
posted @ 2023-04-19 16:19 秊 阅读(49) 评论(0) 推荐(0)
摘要: 本文尝试给出《Java 并发编程实战》2.3.2 节中提到的 “如果内置锁不是可重入的,那么示例代码将会发生死锁” 的一种具体实现。 重入锁(ReentrantLock),顾名思义,就是支持重复进入的锁,它表示该锁能够支持同一个线程对一个资源的重复加锁。也就是说,如果某个线程试图获得一个已经由它自己 阅读全文
posted @ 2023-04-16 18:49 秊 阅读(270) 评论(0) 推荐(0)