数据结构与算法(数组)~ 介绍数组以及力扣上几道数组题目的方法和套路

简介: 数据结构与算法(数组)~ 介绍数组以及力扣上几道数组题目的方法和套路

数据结构与算法(数组)~ 介绍数组以及力扣上几道数组题目的方法和套路


 

1,数组的数据结构 【没啥好说的哈哈哈,可以说一下动态数组哈哈哈】

动态数组:(可以动态改变数组的长度)

(1)基本实现(组成):内部有数组的引用(开始是初始化指向为某个定长的数组),当需要动态改变数组长度时,其实是定义另外一个长度的定长数组,把原先数组的引用指向新创建的数组(然后把老数组的数据,进行遍历复制到新数组中)。

 

自己动手实现:定义了一个动态数组(含有数组引用和数组长度):

(2)数组主要的功能(增删改查):定义一些接口方法


24.png


(3)过程中进行重构链表,将 增删改查 或者一些通用的接口或者属性封装到外部抽象类或者接口(方便设计给其他类用这样子):


25.png


26.png


(整个版本一的链表过程如此)

过程中增删改查实现的具体代码就 略。。。

● 增加:可以在任意一个位置进行增加结点

● 删除:可以在任意一个位置进行删除结点

● 修改:可以在任意一个位置进行修改结点

● 查找:可以查找任意一个位置的结点

✿ 升级版本(实现自动缩容的功能、实现优化利于空间,定义一个指针循环利用数组的空间)

 

2,数组的力扣算法题:


27.png


总结一些小套路吧 (没有通用的套路,就讲一下方法哈):

 

(1)1_两数之和 的方法 :

方法一:暴力枚举(两层循环)

方法二:哈希表 【数组元素, 下标】

 

(2)接下来的几道题可以直接看文章(它们具有某种共性):

 

双指针(使用题目:求子数组(可能是连续的或者是数组中某两个或某三个之和(积等等)等于某个值)特点分析【切记每道题目的分析都要切合题意】》

11,盛最多水的容器

42,接雨水

57,和为s的连续正数序列

15,三数之和

209,长度最小的子数组

53,最大子序和

 

(3)121_买卖股票的最佳时机:
方法一:一次遍历(在此遍历的过程中不断的更新找到最低点(最低点作为买点), 后续的非最低点,则考虑是否可以作为卖点)

 

(4)4_寻找两个正序数组的中位数:

方法一:先从小到大合并,然后再找中间的那个数。

目录
相关文章
|
5月前
|
存储 算法
算法入门:专题二---滑动窗口(长度最小的子数组)类型题目攻克!
给定一个正整数数组和目标值target,找出总和大于等于target的最短连续子数组长度。利用滑动窗口(双指针)优化,维护窗口内元素和,通过单调性避免重复枚举,时间复杂度O(n)。当窗口和满足条件时收缩左边界,更新最小长度,最终返回结果。
|
6月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
222 6
|
6月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
495 0
|
7月前
|
机器学习/深度学习 数据采集 传感器
具有多种最大功率点跟踪(MPPT)方法的光伏发电系统(P&O-增量法-人工神经网络-模糊逻辑控制-粒子群优化)之使用粒子群算法的最大功率点追踪(MPPT)(Simulink仿真实现)
具有多种最大功率点跟踪(MPPT)方法的光伏发电系统(P&O-增量法-人工神经网络-模糊逻辑控制-粒子群优化)之使用粒子群算法的最大功率点追踪(MPPT)(Simulink仿真实现)
486 0
|
5月前
|
存储 算法 编译器
算法入门:剑指offer改编题目:查找总价格为目标值的两个商品
给定递增数组和目标值target,找出两数之和等于target的两个数字。利用双指针法,left从头、right从尾向中间逼近,根据和与target的大小关系调整指针,时间复杂度O(n),空间复杂度O(1)。找不到时返回{-1,-1}。
|
5月前
|
机器学习/深度学习 数据采集 负载均衡
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
276 0
|
5月前
|
机器学习/深度学习 算法 物联网
基于遗传方法的动态多目标优化算法
基于遗传方法的动态多目标优化算法
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
1476 6
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
308 3