06 2022 档案
摘要:/** <p>给定一个二叉树,找出其最小深度。</p> <p>最小深度是从根节点到最近叶子节点的最短路径上的节点数量。</p> <p><strong>说明:</strong>叶子节点是指没有子节点的节点。</p> <p> </p> <p><strong>示例 1:</strong></p> <img
阅读全文
摘要:/** <p>给你两个 <code>m x n</code> 的二进制矩阵 <code>grid1</code> 和 <code>grid2</code> ,它们只包含 <code>0</code> (表示水域)和 <code>1</code> (表示陆地)。一个 <strong>岛屿</stron
阅读全文
摘要:/** <p>给你一个大小为 <code>m x n</code> 的二进制矩阵 <code>grid</code> 。</p> <p><strong>岛屿</strong> 是由一些相邻的 <code>1</code> (代表土地) 构成的组合,这里的「相邻」要求两个
阅读全文
摘要:/** <p>给你一个大小为 <code>m x n</code> 的二进制矩阵 <code>grid</code> ,其中 <code>0</code> 表示一个海洋单元格、<code>1</code> 表示一个陆地单元格。</p> <p>一次 <strong>移动</strong> 是指从一个陆
阅读全文
摘要:### 1. AQS应用之lock #### 1.1 并发之父 ```java doug lea(李二狗),并发之父; java并发编程核心在于juc,当中的大部分同步器实现都是围绕共同的基础行为,比如等待队列,条件队列,独占获取,共享获取等,而这个行为的抽象就是基于AQS(abstractQue
阅读全文
摘要:/** <p>二维矩阵 <code>grid</code> 由 <code>0</code> (土地)和 <code>1</code> (水)组成。岛是由最大的4个方向连通的 <code>0</code> 组成的群,封闭岛是一个 <code>完全</
阅读全文
摘要:/** <p>给你一个由 <code>'1'</code>(陆地)和 <code>'0'</code>(水)组成的的二维网格,请你计算网格中岛屿的数量。</p> <p>岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。</p> <p>此外,你可以假设该网格的四条边均被水
阅读全文
摘要:import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** <p>给定两个整数 <code>n</code> 和 <code>k</code>,返回范围 <code>[1, n]</code>
阅读全文
摘要:### 1. 设计同步器的意义 多线程中,有可能会出现同一个线程访问同一个共享资源,我们称这个资源为临近资源,这种资源可以使对象,变量,文件。由于线程访问的过程不可控,所以需要采用同步机制来协同对象可变状态的访问 1.1 如何解决线程并发安全问题 序列化访问临界资源。在同一时刻只有一个线程可以访问
阅读全文
摘要:import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** <p>给你一个整数数组 <code>nums</code> ,数组中的元素 <strong>互不相同</strong> 。返回该数组
阅读全文
摘要:/** <p>给定一个整数数组 <code>nums</code> 和一个正整数 <code>k</code>,找出是否有可能把这个数组分成 <code>k</code> 个非空子集,其总和都相等。</p> <p> </p> <p><strong>示例 1:</str
阅读全文
摘要:### 1 CPU高速缓存 1.1 cpu为什么要有告诉缓存 1.1.1 带有高速缓存的cpu执行流程 cpu为什么要有告诉缓存 CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。这 就造成了高性能能的内存和硬盘价格及其昂贵。然而CPU的高度运算需要高
阅读全文
摘要:import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** <p>按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。</p> <p><strong>n 皇后问
阅读全文
摘要:import java.util.LinkedList; import java.util.List; /** <p>给定一个不含重复数字的数组 <code>nums</code> ,返回其 <em>所有可能的全排列</em> 。你可以 <strong>按任意顺序</strong> 返回答案。</p
阅读全文
摘要:### 1. 什么是JMM模型 1.1 JMM不同于jvm内存区域模型 java内存模型(java memory model)是一种抽象概念,并不真实存在,描述的是一组规则和规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段 和构成数组对象的元素)的访问方式。JVM运行程序的实体是线程
阅读全文
摘要:/** <p><strong>路径</strong> 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 <strong>至多出现一次</strong> 。该路径<strong> 至少包含一个 </strong>节点,且不一定经过根节点。</p> <
阅读全文
摘要:/** * <p>给定一个二叉树,找出其最大深度。</p> * * <p>二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。</p> * * <p><strong>说明:</strong> 叶子节点是指没有子节点的节点。</p> * * <p><strong>示例:</strong>
阅读全文
摘要:/** <p>序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。</p> <p>请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只
阅读全文