【算法练习】总结 随时更新

1、

s[i]=='1'){//判断是否为1

 1要有单引号括起来,不能直接写1

2、C++中排序可以直接用sort不用再自己写

引入头文件:#include<algorithm>

Sort (start,end,cmp)

参数

(1)start表示要排序数组的起始地址;

(2)end表示数组结束地址的下一位;

(3)cmp用于规定排序的方法,可不填,默认升序。

一般是直接对数组进行排序,例如对数组a[10]排序,sort(a,a+10)

3、数组的输入

for(int i=0;i<n;i++){
		scanf("%d",&a[i]);	
	}

4、 回溯法

dfs()函数模板

要考虑三点:入口、出口、第一次

出口:每做一次递归就+1

5、next_permutation(a,a+n)函数 全排列

头文件<algorithm>

对数组num中的前n个元素进行全排列,同时并改变num数组的值

  #include <iostream>  
    #include <algorithm>  
    using namespace std;  
    int main()  
    {  
        int num[3]={1,2,3};  
        do  
        {  
            cout<<num[0]<<" "<<num[1]<<" "<<num[2]<<endl;  
        }while(next_permutation(num,num+3));  
        return 0;  
    }  
//对num数组的全排列

 

7、    c++输出时的换行符 endl 相当于C里面的\n

cout<<a<<" "<<b<<" "<<c<<endl;

8、 开方函数sqrt

头文件<math.h>

9、素数的高效判断方法

bool isprime(int i){
	//判断质数 6除法 比较高效的方法 
	if(i<=1) return false;
	if(i==2||i==3) return true; 
	if(i%6!=1 && i%6!=5) return false; //如果i不在6的右边,也不在6的左边,就不是质数
	for(int j=5;j<=sqrt(i);j+=6){
		if(i%j == 0 || i%(j+2) == 0) return false; //j+2是想判断5和7能不能被整除 	
	} 
	return true;
}

 10、超过两亿的数据用long保存

11、如果程序超时,我们首先考虑的是空间换时间

将中间结果保存在数组里面

12、string里面的6转换为int、float

比如string里面是6,转换成int,atoi(s.cstring)

                                 转换成double, atof(s.c_string)

13、vector

二维矩阵:

定义一个二维矩阵:vector<vector<int>>  vec

如果想获取vec的行数和列数,可以使用:vec.size()和 vec[0].size()来分别获取行数和列数。

vector一些常见使用方法:

https://www.cnblogs.com/YJthua-china/p/6550960.html

14、map

https://blog.csdn.net/forever__1234/article/details/89647975

unorder_map

https://www.cnblogs.com/slothrbk/p/8823092.html

区别

https://blog.csdn.net/BillCYJ/article/details/78985895

15、for(auto x : nums)

https://www.cnblogs.com/wxl845235800/p/11432337.html 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值