栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

一些对刷题有用的技巧集锦(持续更新中...)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一些对刷题有用的技巧集锦(持续更新中...)

太久不刷题老是忘记一些函数的运用,特地开个帖子记录一下

---------------------------------------------------------------------------------------------------------------------------------

String

1.replace

用str替换指定字符串从idx位置开始长度为len的字符

replace(idx,len,str);

class Solution {
public:
    string replaceSpace(string s) {
        for(int i=0;i 

2.to_string() 将数字转换字符串

vector

1.accumulate(求和)

int sum=accumulate(begin(v),end(v),0);

第三个参数是求和初始值

2.初始化二维数组

vector>mp(n,vector(n,val));
或vector>mp(n,vector(n));
val处表示数组内元素初始化填充的数字,若不加val则默认初始化为0

题目练习59. 螺旋矩阵 II

3.begin()和end()

begin()返回的是第一个元素的迭代器,而end()返回指向容器最后一个元素之后一个位置的正向迭代器。

即(begin(v),end(v))是一个左闭右开区间

利用一个vector来创建另一个vector时要注意:

vectorfather={0,1,2,3};此时新建另一个vector继承father的前两个元素,则是

vectorchild(begin(father),begin(father)+2);//输出0,1

vectorchild(begin(father),begin(father));//没有开辟空间,注意是左闭右开!

常规操作

1.sort

从大到小排序可以直接用反向迭代器

sort(coins.rbegin(),coins.rend());
sort(begin(nums),end(nums),greater());
sort(nums.begin(), nums.end(), greater());
//两种写法均可

2.set

unordered_set/unorder_map底层是哈希表,set/map底层是红黑树,少了排序,刷题中用unordered_set比较快

双指针&滑动窗口

双指针分为对撞指针(两数之和)和快慢指针(环形链表)

有序:对撞指针或二分

无序:哈希表或排序后变有序做法

(n数之和)

滑动窗口:左出又进,维护一个区间(最大连续子序列和)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/767731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号