1,最小公倍数=两数之积/最大公约数。
2,牛顿迭代思想,xn+1=xn-f(xn)/f'(xn)即x=x-(x3-y)/(3*x2)=(2*x+y/x/x)/3;#include<iomanip>
cout<<setprecision(1)<<fixed<<newton(num)<<endl;//输出一位小数
3,字符逆序,string
4.字符统计,#include<map> map<char,int>m ,map提供的是一种键值对容器
5,冒泡排序#include<bits/stdc++.h>强大的头文件功能
6,表示数字,isdigit()判断数字
7.记票统计,#include <vector>
8.放苹果,一,明确函数功能;二,寻找递归结束条件;三,找出函数的等价关系式。
9.#include <bitset> bitset<32> bs(n)将n转换成32位的2进制数 bs.count()1的数目。
10,字符串排序 #include<vector> vector<char>tempchar;tempchar.clear();tempchar.push_back(s[i]);
11,数字颠倒a += n % 10+'0';//转化为字符型。
12,字符串通配符。动态规划:最重要的是设置初值 和找到递推式:const bool ret = match(pattern.c_str(), str.c_str());临时指针,bool返回true和false。
13进制转换cin>>hex>>m十六进制转十进制
14数组相乘利用vector创建二维数组vector<vector<int> > a(x, vector<int>(y, 0));
15成绩排序vector<string>n[101];桶排序n[i].push_back(name) for (auto i : vec) cout<<i<<endl;
16double y = (200 - 14 * x) / 8.0;
17s1.substr(start, max)取字符
18#include<algorithm> sort(a,a+26)
19#include<map> map<int, int>m; (auto a = m.begin(); a != m.end(); a++ )map<int,int>iterator it
20大数相加a = "0" + a;temp=a[i] - '0';a[i]=temp%10+'0';进位carry
21四则运算printf(input())
22 贪心算法 埃及分数 当一个真分数分子不为1时,首先不是进行贪心算法,而是先判断能否进行一个偷巧的分解,即 若b%(a-1)==0,则a/b=1/[b/(a-1)]+1/b*/
23合唱队reverse(dp2.begin(), dp2.end());反转函数
24cout << s.substr(num, len) << endl;
25火车进站#include<stack> 栈函数 next_permutation(a,a+n)全排列
26迷宫问题 回溯算法把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。回溯法的实现方法有两种:递归和递推(也称迭代)
27 strcmp(*char,*char)比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。 [1-2]
28#include <sstream>ss << inputstr;
ss >> ip1a >> ch >> ip1b >> ch >> ip1c >> ch >> ip1d;
ss.clear();
29,R.erase(unique(R.begin(), R.end()), R.end());//去重
30 s.substr(0, 8)取字符
31,前序遍历跑圈,中序遍历顺序,后序遍历吃葡萄。
32,c与c++的区别:C++是面向对象的语言,而C是面向过程的结构化编程语言 语法上: C++具有重载、继承和多态三种特性 C++相比C,增加多许多类型安全的功能,比如强制类型转换、 C++支持范式编程,比如模板类、函数模板等。
33,链表和二叉树
struct TreeLinkNode {
int val;
struct TreeLinkNode *left;
struct TreeLinkNode *right;
struct TreeLinkNode *parent;
TreeLinkNode(int x){val(x),left(NULL),right(NULL),parent(NULL)}
};
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :val(x),next(NULL){}
};
34,dfs和bfs问题
#include<iostream>
#include<queue>
#include<string>
using namespace std;
int a[5];
void dfs(int now)
{
if (now == 3)
{
for (int i = 0; i < 3 ; i++) cout << a[i];
cout << '\n';
return;
}
for (int i = 0; i < 2; i++)
{
a[now] = i;
dfs(now + 1);
}
}
queue<string> q;
void bfs()
{
string s = "";
q.push(s);
while (!q.empty())
{
//cout << "*\n";
string t = q.front();
q.pop();
if (t.size() == 2)
{
cout << t << '\n';
continue;
}
for (int i = 0; i < 2; i++)
{
string nxt = t;
if(i == 0) nxt += '0' ;
else nxt += '1';
q.push(nxt);
}
}
}
int main()
{
//dfs(0);
bfs();
return 0;
}