Java基础
1970-01-01
1 引言DataX 是一个异构数据源离线同步工具,主要应用与不同数据源之间的数据同步根据官方的架构图 Datax主要分为三个模块 Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。 Writer: Wr...
排序
1.排序快速排序(AcWing785)主要思想:基于分治思想 l是待排序区间的左边界,r是右边界 确定分界点x,可以取左边界的值q[l],或右边界的值q[r],或者中间位置的值q[(l + r)/2] 根据基准值,调整区间,使得左半边区间的值全都...
二分查找
2. 二分查找整数二分二分的本质不是单调性,有单调性一定可以二分,可以二分不一定有单调性 二分的本质是边界,假设给定一个区间,如果能够根据某个条件,将区间划分为左右两部分,使得左半边满足这个条件,右半边不满足这个条件(或者反之)。就可以用二分来查找左...
高精度
3.高精度主要有四种情况: A + B:两个大整数相加 A - B:两个大整数相减 A × b:一个大整数乘一个小整数 A ÷ b:一个大整数除以一个小整数 大整数的存储(加减乘除):C++和C中不支持直接存储大整数,需要自己定义用数组存储,数字...
前缀和与差分
4.前缀和与差分1.一维前缀和一维前缀和:S[i]=a1+a2+a3+a4+…..+ai,要求a从a1开始,且S[0]=0 前缀和的作用:给定一组序列数据,可以计算任意第l个数到第r个数的和,S[r]-S[l-1](这里就解释了...
双指针算法
5.双指针算法主要思想: 针对单一序列使用两个指针,如快速排序 针对不同的两个序列使用两个指针,如归并排序 双指针算法可以实现对暴力(朴素)算法的优化,使时间复杂度由O(n^2)优化到O(n),要求序列有单调关系 代码模板 123456for(i...
位运算
6.位运算主要思想: 获取一个数的二进制的第k位:x>>k & 1,将x右移k位即第k位就移动到最低有效位,每次右移后的数与1做按位与运算,只会保留最低有效位即第k位的二进制数。如x=10111,x>>2,...
离散化
7.离散化主要思想: 有的数组,其元素的值域很大,比如数组中的元素范围很大,下标范围为[-10^9, 10^9],但元素的个数很少,比如只有1000个元素。 有时(例如计数排序的思想),我们需要将元素的值,作为数组的下标来操作。此时不可能开一个2*1...