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

Leetcode数组练习总结

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

Leetcode数组练习总结

练习路径参考:代码随想录 Leetcode相关题目:

二分查找
搜索插入位置
在排序数组中查找元素的第一个和最后一个位置
x的平方根
有效的完全平方数
移除元素
删除有序数组中的重复项
移动零
比较含退格的字符串
有序数组的平方
长度最小的子数组
水果成篮
最小覆盖子串
螺旋矩阵 II
螺旋矩阵

知识点总结 1 二分查找

重点: 把握区间不变量,每次考虑区间时,保证[left, right),以此考虑循环条件和端点改变;
循环条件: left < right
左端点改变: left = mid+1 (mid不符合条件时,下一个需要考虑的元素为mid+1)
右端点改变:right = mid (mid不符合条件,直接赋给right,不再考虑)

2 双指针思想

重点:还是把握不变量,这里的不变量体现在理解指针的作用和含义。
前指针——用于对数组进行遍历;
后指针——指向合法结果数组的后一个元素/下一个插入符合条件的数据;
根据题目的条件,指针可以是同向而行,也可能是相向而行。

3 滑动窗口

重点:把握滑动窗口中窗口的含义;
窗口前沿的滑动——用于找到可行解;
窗口后沿的滑动——用于找到局部最优解;
一般是求子串、子序列之类的问题,两层循环,外层循环找符合条件的可行解,内层循环找到局部最优解,并更新全局最优解。

4 模拟(螺旋矩阵)

重点:找到不随规模改变而改变的模拟规律,并正确处理边界条件;
螺旋矩阵处理思想:
1 按圈处理,每圈处理四条边,边界条件是中间点,单独讨论;
2 递归处理,每次处理外围一圈,边界条件是递归终止条件;
3 按边处理,每次按顺序处理一条边,边界条件是上下边界(或左右边界)相交;

5 C/C++相关数据结构、算法

1 数组:
栈中开辟需要指明数组大小(常数);
堆中开辟(malloc/free、new/delete);
STL数组容器vector:
        创建/初始化方法;
        常用方法;

2 字符串:
C风格字符串(以’’结尾的字符数组);
        C风格字符串的创建、初始化
        标准库中对C风格字符串的处理函数
C++ STL String类(字符类型容器);
        String类的创建、初始化
        String类中的常用方法

3 unordered_map
C++ STL 哈希表容器,不允许重复key;
常用方法;

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

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

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