- 使用链表的时候,记得给最后一个结点的next赋值为NULL,即p->next = NULL。特别是删除链表结点的时候,记得给链表结尾的next赋值为NULL
- 可以先用动规思考,思考前与后是否有联系
- 用分治法,分为两半去解决
- 在做链表题的时候可以考虑两个指针去做,比如判断链表是否有环(用快指针追慢指针)
- 对于char类型,’\0’其实就是NULL,为了写得快可以使用!*str判断是否到字符串结尾。
- string 转int 用stoi(),int转string用to_string()
- 将string转化成char类型时,可以使用memcpy。注意,取出string内容时需要使用c_str()
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/70ef386843aabcc57ddcd5f4c1a88e2a.png)
- int转string使用to_string(),string转int采用stoi()
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/66132355590e7997282224d5f483ad3b.png)
- 注意unsigned int的减法,很容易溢出。如果减法会出现负数,如b是unsigned int应该使用a-(int)b,不能直接a-b。
- 在牛客使用new的时候的时候,如int **ans = new int[len][len];会报错,除非使用int **ans = new int[4][4]; 即使使用const声明ans也不行。需要像以下这样声明
bool **match = (bool**)malloc(sizeof(bool*)*len);
for (int i = 0; i < len; i++){
//match[i] = (bool*)malloc(sizeof(bool)*len); 这样也可以
match[i] = new bool[len];
}