2022第三次总结

本文探讨了算法基础中的搜索策略,如在复杂情况下的搜索应用,并介绍了折半搜索的效率提升。接着讲解了前缀和的概念,包括一维和二维前缀和的实现代码。此外,还提到了倍增技术及其在组合数字中的应用。同时,文章也提及了数据结构中的单调栈,强调其在查找单调序列中元素的优势。尽管作者表示理解代码仍有一定困难,但这些基础知识对于提升编程技能至关重要。
摘要由CSDN通过智能技术生成

这周看了30多篇文章,关于搜索-折半搜索,思维,数据结构,算法基础-前缀和、倍增,

搜索相当于在迷宫里找可以出去的路线,如果题目分枝情况很多,如果题目的可能出现的情况很多,要求符合条件的情况时,可以用搜索。

折半搜索可以使时间复杂度降低很多,两部分结果最后综合一下就行。

前缀和:分为一维前缀和和二维前缀和,一维前缀和就是一维数组的前N项和,二维前缀和就是以该点和和a0,0点连线为对角线的方形矩阵的所有元素的和

一维前缀和代码为:

for(int i=0;i<n;i++)

{

    if(i==0) y[i]=x[i];

    else y[i]=y[i-1]+x[i];

}

二维前缀和代码为:

for(int y=0;y<n;y++)//n行

    for(int x=0;x<m;x++)//m列

    {

        if(x==0&&y==0) b[y][x]=a[y][x];//左上角的值

        else if(x==0) b[y][x]=b[y-1][x]+a[y][x];//第一列

        else if(y==0) b[y][x]=b[y][x-1]+a[y][x];//第一行

        else b[y][x]=b[y-1][x]+b[y][x-1]-b[y-1][x-1]+a[y][x];                             减去加↑两次的部分

    }

倍增:

1,2,4,……2的n次方,可以组合出[1,2的n次方-1]内所有的数

核心公式:to[x][i]=to[to[x][i-1]][i-1]

 

数据结构-单调栈

单调递增或递减的栈,找比一个元素大或小的元素很方便,插入新元素时把从栈顶开始不满足条件的元素弹出,直到满足单调性。

可能是上学期基础不好吧,现在看代码都很费劲,很难懂,课本上的最基础的才能勉强看懂。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值