代码随想录算法训练营数组总结

一、理论基础


定义:数组是存放在连续内存空间上的相同类型数据的集合。
注意事项:

①数组下标从0开始。

②数组元素不能删除,只能覆盖。

③二维数组的地址空间不一定是连续的。

二、方法总结


1.二分法

思想:设置left、right指针,确定临界区间,一般分为以下两种。

左闭右闭:left = 0, right = nums.length - 1, while(left<=right), left = mid+1, right = mid-1

左闭右开:left = 0, right = nums.length, while(left < right).left = mid+1, right = mid
相关题目:LeetCode 704.二分查找 35.搜索插入位置

34.在排序数组中查找第一个和最后一个元素的位置

2.双指针

思想:设置快慢指针fast、slow,在一个for循环内完成两个for循环的任务。
相关题目:LeetCode 27.移除元素 977.有序数组的平方

3.滑动窗口

思想:以子序列的结束位置作为遍历索引、根据当前子序列的情况,不断调整子序列的起始位置。
相关题目: LeetCode 209.长度最小的子数组

4.模拟过程

思想:依据题意设置合适数量的指针及边界控制符,模拟实现过程从而完成求解。
相关题目:LeetCode 59.螺旋矩阵

三、个人总结


二分法:关键在于开闭区间与左右指针的匹配,掌握较好。

双指针:关键在于设置快慢指针移动条件,掌握较好。

滑动窗口:关键在于确定窗口起始位置移动条件,掌握一般,需加强练习。

模拟过程:画图对解题帮助较大,掌握良好。

相关推荐
缺点内向3 小时前
Java:创建、读取或更新 Excel 文档
java·excel
我搞slam3 小时前
快乐数--leetcode
算法·leetcode·哈希算法
带刺的坐椅3 小时前
Solon v3.4.7, v3.5.6, v3.6.1 发布(国产优秀应用开发框架)
java·spring·solon
WWZZ20254 小时前
快速上手大模型:机器学习3(多元线性回归及梯度、向量化、正规方程)
人工智能·算法·机器学习·机器人·slam·具身感知
四谎真好看5 小时前
Java 黑马程序员学习笔记(进阶篇18)
java·笔记·学习·学习笔记
桦说编程5 小时前
深入解析CompletableFuture源码实现(2)———双源输入
java·后端·源码
东方佑5 小时前
从字符串中提取重复子串的Python算法解析
windows·python·算法
java_t_t5 小时前
ZIP工具类
java·zip
西阳未落5 小时前
LeetCode——二分(进阶)
算法·leetcode·职场和发展
lang201509285 小时前
Spring Boot优雅关闭全解析
java·spring boot·后端