2021-01-21

学习内容:

1、前缀和与差分
2、树
3、Java的string

学习时间:

8:00~8:05 签到
9:00~11:30 Java的string
12:00~1:00 树
1:30~2:30 刷题
3:00~5:30 前缀和与差分
前缀和
一维数组
公式:

int sum[N],a[N]; //sum[i]=a[1]+a[2]+a[3].....a[i];
for(int i=1;i<=n;i++)
{ 
    sum[i]=sum[i-1]+a[i];   
}

二维数组
公式:

s[i] [j] = s[i-1][j] + s[i][j-1 ] + a[i] [j] - s[i-1][ j-1];

差分
差分是逆前缀和,a[n],差分b[n],也就是a[n]==b[n]+b[n-1]。
一维数组
公式:

b[n] = a[n] - a[n-1];//求差分
b[l]+=c;     //表示将序列中[l, r]之间的每个数加上c
b[r+1]-=c;

b[i]+=b[i-1];  //求前缀和运算
printf("%d ",b[i]);

二维数组
公式:

b[x1][y1] + = c;
b[x1,][y2+1] - = c;
b[x2+1][y1] - = c;
b[x2+1][y2+1] + = c;//求差分数组和区域加上一个c

b[i][j]=a[i][j]−a[i−1][j]−a[i][j−1]+a[i−1][j−1];//求a[i][j]+c;

完全二叉树

可以用一维数组存储,求父亲下标为i/2,求其儿子,左i2,右i2+1。
遍历方式
前序遍历:root -> left -> right
中序遍历:left -> root -> right
后续遍历:left ->right -> root

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值