LeetCode&&牛客相关总结
2017-10-19 10:25
148 查看
vector<int>num ; 往num中添加变量,num.push_back(i); vector中变量个数vector.size()
unordered_map<int,int>hash ,类似map,
存储的是key_value形式,查找不成功情况hash.find(xxx) = hash.end(); 添加变量hash[key] = value;
字符串str长度,str.length(),char *长度,strlen(str);
unordered_map遍历;
typedef unordered_map<int, int>mymap;
mymap hash;
for(mymap::iterator i=hash.begin();i!=hash.end();i++)
{
cout<<i->first<<" "<<i->second<<endl;
}
栈的用法,#include<stack> stack<int>stk , empty()判断是否为空,size()元素个数,pop()弹出栈顶元素不返回其值,top()返回栈顶元素,push()在栈顶压入新元素
队列, #include <queue> queue<int> q, empty(),size(),用法同上, pop()删除队首的元素,push()在队尾压入新元素,front()返回队首的元素 ,back()返回队尾的元素
map和unordered_map同异。都是key-value形式,可以通过key快速索引value,不同的是unordered_map不会根据key的大小进行排序,其内部元素是无序的,而map中的元素是按照二叉树索引存储的,进行中序遍历会得到有序遍历
map<int,int>,第二个值默认为0
round函数实现, return (val> 0.0) ? floor(val+ 0.5) : ceil(val- 0.5);floor(向下取整数部分),ceil向上取整,round(11.5) 12;round(-11.5) -12
pthread(POSIX thread)实现多线程,
c++编译时-O1,提供基础级别的优化,-O2提供更加高级的代码优化,-O3提供最高级的代码优化
结构体:struct List{ int val; struct List*next;List(int x):val(x),next(NULL) };新建时候直接new就可以了
int转string,int a=5; stringstream ss; ss<<a; string str = ss.str();
牛客替换空格,char * str; char *pstr1 = str +10;是将str的'\0'后移十位,此时*str的长度变长
短路求值: 求1+2+3+n;
int sum(int n)
{
int s=n;
s&&(s=s+sum(n-1))
return s;
}
位运算实现加减:num1&num2可以知道哪些位是要进1的,然后左移一位,和num1^num2作和
int Add(int num1, num2)
{
int (num2==0)
return num1;
int num=num1^num2;
int carry = (num1&num2)<<1;
return Add(num, carry);
}
vector操作方法总
push_back(num),在尾部添加元素num
insert(it,num),在迭代器it添加元素
erase(it),删除迭代器指定的元素
clear(),清空vector中所有的元素
pop_back(),删除末尾的元素
size(),计算大小
结构体初试函数写法:
struct TreeNode{
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL){
}
}
判断二叉树是否是平衡二叉树
求每个节点的左右深度之差,若超过1,则false,若小于等于1,则执行第二步
判断左右子树是否都是平衡二叉树,若都是则true,否则是false
string转char*
string str = "abcdefg";
char * buffer = new char[str.size()+1];
strcpy(buffer, str.c_str());
char* 转数字
char * ch="12345";
int num=0;
while(*ch!='\0')
{
num = num*10+(*ch-'0');
}
unordered_map<int,int>hash ,类似map,
存储的是key_value形式,查找不成功情况hash.find(xxx) = hash.end(); 添加变量hash[key] = value;
字符串str长度,str.length(),char *长度,strlen(str);
unordered_map遍历;
typedef unordered_map<int, int>mymap;
mymap hash;
for(mymap::iterator i=hash.begin();i!=hash.end();i++)
{
cout<<i->first<<" "<<i->second<<endl;
}
栈的用法,#include<stack> stack<int>stk , empty()判断是否为空,size()元素个数,pop()弹出栈顶元素不返回其值,top()返回栈顶元素,push()在栈顶压入新元素
队列, #include <queue> queue<int> q, empty(),size(),用法同上, pop()删除队首的元素,push()在队尾压入新元素,front()返回队首的元素 ,back()返回队尾的元素
map和unordered_map同异。都是key-value形式,可以通过key快速索引value,不同的是unordered_map不会根据key的大小进行排序,其内部元素是无序的,而map中的元素是按照二叉树索引存储的,进行中序遍历会得到有序遍历
map<int,int>,第二个值默认为0
round函数实现, return (val> 0.0) ? floor(val+ 0.5) : ceil(val- 0.5);floor(向下取整数部分),ceil向上取整,round(11.5) 12;round(-11.5) -12
pthread(POSIX thread)实现多线程,
c++编译时-O1,提供基础级别的优化,-O2提供更加高级的代码优化,-O3提供最高级的代码优化
结构体:struct List{ int val; struct List*next;List(int x):val(x),next(NULL) };新建时候直接new就可以了
int转string,int a=5; stringstream ss; ss<<a; string str = ss.str();
牛客替换空格,char * str; char *pstr1 = str +10;是将str的'\0'后移十位,此时*str的长度变长
短路求值: 求1+2+3+n;
int sum(int n)
{
int s=n;
s&&(s=s+sum(n-1))
return s;
}
位运算实现加减:num1&num2可以知道哪些位是要进1的,然后左移一位,和num1^num2作和
int Add(int num1, num2)
{
int (num2==0)
return num1;
int num=num1^num2;
int carry = (num1&num2)<<1;
return Add(num, carry);
}
vector操作方法总
push_back(num),在尾部添加元素num
insert(it,num),在迭代器it添加元素
erase(it),删除迭代器指定的元素
clear(),清空vector中所有的元素
pop_back(),删除末尾的元素
size(),计算大小
结构体初试函数写法:
struct TreeNode{
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL){
}
}
判断二叉树是否是平衡二叉树
求每个节点的左右深度之差,若超过1,则false,若小于等于1,则执行第二步
判断左右子树是否都是平衡二叉树,若都是则true,否则是false
string转char*
string str = "abcdefg";
char * buffer = new char[str.size()+1];
strcpy(buffer, str.c_str());
char* 转数字
char * ch="12345";
int num=0;
while(*ch!='\0')
{
num = num*10+(*ch-'0');
}
相关文章推荐
- LeetCode数据库题解&&sql相关知识总结
- 【Cocos2dx通信(Http&Socket)相关编译到Android细节总结】编译加入curl关联lib与头文件 && 解决pthread的cancel函数NDK不支持,找不到sockaddr_i
- iOS&nbsp;拨打电话相关知识总结
- 【Cocos2dx通信(Http&Socket)相关编译到Android细节总结】编译加入curl关联lib与头文件 && 解决pthread的cancel函数NDK不支持,找不到sockaddr_i
- [Leetcode][双指针/多指针]相关题目汇总/分析/总结
- leetcode二叉树相关操作的总结
- [Leetcode][求和问题2Sum/3Sum/4Sum/KSum]相关题目汇总/分析/总结
- LeetCode相关的KSum总结
- JVM相关学习记录与总结(内存&GC&类加载&工具)
- uboot_config&make相关文件总结
- 快慢指针法总结 链表找环 leetcode 141 142 & 202
- Unix/Linux中进程控制相关命令总结——&, jobs, fg, bg等命令的使用方法
- [Leetcode]database 相关题目的总结
- Quartz调度框架应用总结<2>--作业及其相关
- Git总结(2)—GitHub的使用&相关git命令&公钥私钥
- ibatis <dynamic> 标签 update 的相关问题总结
- Android开发总结笔记 SearchView&Search(搜索相关) 1-3-7
- iOS&nbsp;剪贴板使用相关总结《转》
- Leetcode: Longest Substring with At Most K Distinct Characters && Summary: Window做法两种思路总结
- LeetCode题解——Intervals相关题总结