6. Z 字形变换
6. Z 字形变换 6. Z 字形变换 ✨核心逻辑 本题采用 模拟(按行存取)+ 方向控制 的策略: 特殊边界处理:如果行数 numRows 为 1,或者字符串长度小于等于行数(即根本撑不满 Z 字形),直接返回原字符串即可。 构建行容器:创建一个长度为 numRows 的 StringBuilde
6. Z 字形变换 6. Z 字形变换 ✨核心逻辑 本题采用 模拟(按行存取)+ 方向控制 的策略: 特殊边界处理:如果行数 numRows 为 1,或者字符串长度小于等于行数(即根本撑不满 Z 字形),直接返回原字符串即可。 构建行容器:创建一个长度为 numRows 的 StringBuilde
15. 三数之和 15. 三数之和 ✨核心逻辑 本题采用 排序 + 双指针 的策略: 排序预处理:首先对数组进行排序,排序后不仅可以利用有序性快速查找到目标,还方便跳过重复元素。 固定第一层循环:遍历数组的每一个元素 nums[i],将其作为三个数中的第一个数。因为要求三数之和为 0,所以问题就转化
11. 盛最多水的容器 11. 盛最多水的容器 ✨核心逻辑 本题采用 双指针(对撞指针) 的策略: 初始化指针:左指针 left 指向数组的最左端,右指针 right 指向数组的最右端,此时容器的宽度达到最大。 计算容积:容器能装水的容量由 左右指针指向的较短板高度 和 两指针间的距离 决定,即 m
167. 两数之和 II - 输入有序数组 167. 两数之和 II - 输入有序数组 ✨核心逻辑 本题由于数组已经是按 非递减顺序 排列的,因此可以利用 双指针(对撞指针) 策略在 O(1) 的额外空间内高效解决: 初始化指针:左指针 left 指向数组的最左端(最小值),右指针 right 指向
以下是自己使用Freeplane编写的脑图知识点,涵盖了 JVM相关的一些基础知识点 作为知识回顾,复习以及总结
什么是真正的「戒色」 🚀🚀不要把戒色当成人生目标,而要把它当成实现人生目标的工具 视频核心观点: 戒色 ≠ 不射精 戒色 ≠ 不碰女人 戒色 ≠ 苦行僧 戒色的本质是:摆脱色情与欲望的控制,把性能量转化为成长动力,从而成为最佳版本的自己。 一句话总结 戒色只是工具,不是目的。 真正的目的是: 提
151. 反转字符串中的单词 151. 反转字符串中的单词 ✨核心逻辑 本题要求反转字符串中单词的顺序,并处理多余的空格。这里提供两种思路: API 思路(推荐实际开发使用):直接使用 Java 提供的字符串处理方法。先用 trim() 去除首尾空格,再用正则 split("\\s+") 按一个或多
12. 整数转罗马数字 12. 整数转罗马数字 ✨核心逻辑 本题采用 贪心算法 的策略: 建立映射表:将阿拉伯数字与其对应的罗马数字符号建立一一对应的关系。除了基础的 1000(M)、500(D)、100(C) 等,必须包含减法规则的组合(如 900(CM)、400(CD)、90(XC) 等)。 按
134. 加油站 134. 加油站 ✨核心逻辑 本题使用 贪心算法 的思想,只需要一次遍历就能找到唯一的出发点: 全局判断:如果所有加油站的总油量(totalGas)小于总耗油量(totalCost),即 totalGas < 0,说明无论从哪个站点出发都无法绕行一周,直接返回 -1。 局部贪心:用
238. 除了自身以外数组的乘积 238. 除了自身以外数组的乘积 ✨核心逻辑 本题要求在 不使用除法 且 时间复杂度 O(N) 的前提下,计算出数组中每个元素除自身以外其他元素的乘积。这里提供两种解法: 思路一:左右乘积数组。分别计算出每个元素左侧所有元素的乘积(前缀积)和右侧所有元素的乘积(后缀