基础算法学习心得

本文探讨了算法学习中的核心概念,包括DP与记忆化搜索的异同、C++中的常用函数、栈在数值表达式中的应用,以及分治法、快速幂、KMP算法等经典算法的原理。同时,还提到了输入输出处理、二分查找模板和贪心法等实用技巧。
摘要由CSDN通过智能技术生成

DP和记忆化搜索的区别就是,没有区别,DP时间更快,实质上都是找规律,从后往前推,用空间换时间的方法去优化。

#include 中的memset函数
用法:memset ( arry , number , sizeof (arry) ) ;
用途:清空数组,将数组中的所有数据变成number值(清空操作);

sort(begin,end,(默认升序)complare(返回a>b表示降序))

数组标记法:用两个数组,一个数组存数据,以第一个数组的数据作为另一个数组的下标,可以另其为1(因为默认初始化的数组数据为0(int类型)),这样就相当于对此下标的数据作了一个标记。

Eg:t[1]=1;  g[t[1]] = 1;

初始化局部变量和全局变量
当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。定义全局变量时,系统会自动初始化为下列值:

数据类型 初始化默认值
int 0
char ‘\0’
float 0
double 0
pointer NULL

C的标准函数
常用函数查找
.math中的求平方根:sqrt(x) , 求绝对值:fabs(x)。
tolower

string.h中的strcpy结束符一样复制,strcat 此过程将覆盖第一个参数的结束符 ‘\0’。

strcmp 函数用于比较两个字符串,一直到结束符。
**在输入字符串时,类似于gets_s这样的函数只能向char*q输入,不能向string类型输入。

d是可以geiline(cin,string)向string类型输入字符。
eg:string s;
getline(cin,s);//用s.size 在洛谷里面用这种方法
//char s[15];
//gets_s(s);//用sizeof
getline()用来读取一行数据,但是当getline()前面进行了cin输入的话,getline()会把进行cin输入时行末丢弃的换行符读入,从而造成getline()第一次获得的数据为一空行。解决方法是在cin后面加一行cin.ignore();
getchar(): 可从终端获得一个字符的ASCII码值。在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的字符都会缓冲在键盘缓冲器中,直到回车换行一次性将所有字符按序依次赋给相应的变量,在这里一定要注意最后一个字符即’\n’,该字符也会赋给一个相应的变量(当然这要你定义的用来接收字符的变量数比你输入的可见字符多一才可以)。eg:
int main() {
char c;
while ((c = getchar()) != ’ ')
{
cout << c; cout << “11111”;}
}
输入:333Enter
输出:
333
311111311111311111
11111
C++中%d 和 %04d有什么区别?
%d左对齐,输出变量的所有数字;%4d右对齐,宽度为4,左边填充空格,当变量的实际宽度大于4时,输出变量的所有数字;%04d与%4d的唯一区别就是左边填充0。
C++中的精度控制
在头文件中的cout<<fixed<<setprecision(n);保留小数点后n位,不够的用0补齐;
string中的stoi函数: in

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值