苏州知名高端网站建设公司,jsp个人网站怎样做,多个域名解析到一个网站,网站如何合理建设seo再来聊聊数组 
这篇我们来总结一下数组相关的一些算法#xff0c;数组的特点在于我们能通过下标得到对应数据#xff0c;时间复杂度在O(1)#xff0c;之前有多篇文章有数组相关的体系#xff0c;一下来一个归纳#xff1a; 
数据结构与算法–判断扑克牌是否顺子 
数据结构…再来聊聊数组 
这篇我们来总结一下数组相关的一些算法数组的特点在于我们能通过下标得到对应数据时间复杂度在O(1)之前有多篇文章有数组相关的体系一下来一个归纳 
数据结构与算法–判断扑克牌是否顺子 
数据结构与算法–翻转单词顺序 
数据结构与算法–有序数组中找出和为s的两个数字 
数据结构与算法–第一个只出现一次的字符 
数据结构与算法–数组中出一次的数字 
数据结构与算法–数字在排序数组中出现次数 
数据结构与算法–数组中的逆序对 
数据结构与算法–将数组排成最小的数 
数据结构与算法-- 数组中出现次数超过一半的数字时间复杂度的讨论 
数据结构与算法–数组二维数组中查找 
数据结构与算法–字符串的排列组合问题 
数据结构与算法–回朔矩阵中查找字符串路径 
数据结构与算法–字符串字符串替换 
数据结构与算法–查找与排序另类用法 
数据结构与算法–经典10大排序算法动图演示【建议收藏】 
以上是现阶段已经解除的数组相关包括字符串其实也就是数组问题其中用的最多的是双指针还有就是归并法二分法其中排序是最重要的在最后一排10大排序算法中详细介绍了每一种排序并有动图演示。有的根据数组中数据的特殊性进行解题例如出现一次的数字利用位运算相关知识还有排序算法思想的另类用法利用排序思想进行查询。等发现还是基础知识的运用最重要。以上文章中都与是运用数组进行解题或者是其中有一个方法是用的数组。接下来是今天的题目 
最长子串问题给定一个字符串找出字符串中的最长子串使得这个子串中没有重复的数字 
因为写过之前的题目有序数组中找出和为s的两个数字 我第一反应就是双指针遍历数组分析如下 指针startend都从0开始在end  length-1 情况下让end判断当前指针范围内是否有重复数字如果有当前最长子串就是 maxTemp  start ~ end-1先判断最长子串与当前maxTemp大小取最大值此时我们将start如果没有重复数字那么我们继续end继续如上步骤知道end  length-1 或者start  end 以上遍历一次能得到最终值但是在判断当前范围是否重复时候必然有额外开销 如果直接遍历判断那么最终时间复杂度将会变成O(n2)我用空间换时间 如果输入数据只有普通字符a~z那么我们自建一个256 大小的hash表用数组做容器如果输入数据中海油汉字等其他字符那么我们只能用Map集合了或者用链表自实现Map在上文 数据结构与算法–第一个只出现一次的字符 我们就是如此实现  如下动图 如上分析有如下代码 
/*** 给定一个字符串找出字符串中的最长子串使得这个子串中没有重复的数字* author liaojiamin* Date:Created in 16:39 2021/7/15*/
public class FindLongestSubStr {public static void main(String[] args) {String maxSubStr  1234578123;System.out.println(findLongestStr(maxSubStr));}/*** 双指针实现滑动窗口并空间换时间* */public static Integer findLongestStr(String str){if(str  null || str.length()  0){return 0;}MapCharacter, Integer validateMap  new HashMap();char[] chars  str.toCharArray();int positionStart  0;int positionEnd  0;int maxSumLength  0;while (positionEnd  chars.length -1  positionStart  positionEnd){if(validateMap.containsKey(chars[positionEnd])){validateMap.remove(chars[positionStart]);positionStart;}else {validateMap.put(chars[positionEnd], 1);positionEnd;}int length  positionEnd-1 - positionStart 1;if(maxSumLength  length){maxSumLength  length;}}return maxSumLength;}}上一篇数据结构与算法–死磕二叉树 下一篇数据结构与算法–二叉树第k个大的节点