0%

链表

链表是一种线性数据结构,由一组节点(Node)组成,每个节点通过指针链接到下一个节点。链表可以动态分配内存,适合频繁插入和删除操作的场景。

阅读全文 »

二进制与位运算

二进制和位运算是计算机科学和编程中非常重要的概念,广泛应用于底层编程、硬件控制、数据加密、图像处理等领域。理解二进制与位运算是掌握计算机系统内部工作原理的基础。

阅读全文 »

滑动窗口

滑动窗口(Sliding Window)是一种常用的算法技巧,通常用于解决涉及子数组或子序列的最优化问题。它的核心思想是利用两个指针(窗口的左右边界),通过动态调整窗口的大小来遍历数据结构,从而有效地解决问题。

阅读全文 »

排序算法

排序算法是指将一组元素按某种顺序排列的算法。通常,排序的目的是为了使得数据能够更加高效地查找、检索或处理。排序算法的应用非常广泛,几乎在所有需要数据排列的地方都能找到它的身影,比如:数据库查询、数据分析、图像处理、搜索引擎等

阅读全文 »

前缀和

前缀和(Prefix Sum)是一个非常常见且高效的算法技巧,用来快速计算数组或矩阵中某个区间的元素和。它的核心思想是通过预处理数组(或矩阵),构建一个新的数组(或矩阵),使得可以在常数时间内计算任意区间的和,从而显著提高效率。

阅读全文 »

二分答案法

1、估计最终答案可能范围是什么
2、分析问题的答案和给定条件的单调性,大部分的时候只需要用到自然智慧
3、建立一个f函数,当答案固定的情况下,判断给定的条件是否达标
4、在最终答案可能的范围内不断二分搜索,每次用f函数判断,直到二分结束,找到最合适的答案

阅读全文 »

二分查找法

二分查找法(Binary Search)是一种在有序数组或列表中快速查找目标值的算法。它通过将查找范围逐步减半,有效地减少了比较次数,时间复杂度为O(logN),适用于数据量较大且有序的场景。

阅读全文 »

高精度算法

高精度算法主要用于处理比普通数据类型更大的数值。普通的数据类型(如 int, long long)无法满足对非常大的数进行计算时的需求。高精度算法通过模拟手工运算过程,逐位处理数字,保证了数值的准确性和有效性。

在高精度运算中,常见的操作包括加法、减法、乘法等,它们通常在字符串中以逐位的方式实现,以应对超过普通数据类型范围的数值。

阅读全文 »