算法 (Java)

算法【Java】—— 二叉树的深搜

二叉树是数据结构中的一种重要形式,它由节点(Node)组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。深度优先搜索(Depth First Search, DFS)是一种遍历二叉树的方式,能够在树的每个分支上尽可能深入地进行搜索。本文将介绍如何用 Java 实现二叉树的深度优先搜索,并提

算法【Java】 —— 滑动窗口

滑动窗口算法详解滑动窗口算法是一种常用的技术,广泛应用于数组或字符串的子序列问题解决上。其核心思想是通过一个动态的窗口来维护当前考虑的范围,从而优化时间复杂度。与暴力破解的 O(n^2) 时间复杂度相比,滑动窗口通常能将复杂度降低到 O(n),这是算法设计中的重要思路之一。滑动窗口的原理滑动窗

算法【Java】—— 位运算

位运算是计算机科学中的一种基础运算,它直接对数字的二进制位进行操作。在Java中,位运算符提供了对整数二进制位的操作能力,使得某些计算可以更加高效。我们常用的位运算符包括:与(&)、或(|)、异或(^)、非(~)、左移(<<)、右移(>>)和无符号右移(>&gt

算法【Java】—— 双指针算法

双指针算法是一种常用的算法技巧,特别适用于处理数组或链表等线性结构中的问题。它通过维护两个指针(通常是数组中的两个索引)来遍历数据,从而有效地降低时间复杂度,提高性能。这种方法常见于排序、搜索、组合等问题中。双指针算法的基本思想双指针算法的基本思想是使用两个指针分别指向数组的不同位置,通过移动这

算法【Java】 —— 前缀和

前缀和(Prefix Sum)是计算数组区间和的一种高效算法,广泛用于处理数组中子区间和的问题。通过预先计算前缀和数组,可以在常数时间复杂度内查询任意子区间的和。本文将详细介绍前缀和的概念及其在Java中的实现,并给出代码示例。前缀和的定义给定一个整数数组 nums,我们定义前缀和数组 pref