当前位置: 首页 > news >正文

哈尔滨百度网站建设福州百度推广排名

哈尔滨百度网站建设,福州百度推广排名,武汉专业网站建设推广,做网络竞拍的网站题目描述 给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。 返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。 示例 1: 输入…

在这里插入图片描述

题目描述

给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。

返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。

示例 1:

输入: [“A”,“1”,“B”,“C”,“D”,“2”,“3”,“4”,“E”,“5”,“F”,“G”,“6”,“7”,“H”,“I”,“J”,“K”,“L”,“M”]

输出: [“A”,“1”,“B”,“C”,“D”,“2”,“3”,“4”,“E”,“5”,“F”,“G”,“6”,“7”]
示例 2:

输入: [“A”,“A”]

输出: []
提示:

array.length <= 100000

求解思路

  1. 首先我们查看题目给定的数据范围去大致确定一个求解的策略;
  2. 然后我们对给定的题目进行题目分析,题目要求我们从一个只有字母和数字组成的数组中去找到最长的子数组,这个最长的子数组中字母和数字的个数是需要相同的;
  3. 读完题目大家肯定还是有些疑惑?我们可以对题目做一个简单的转化,你可能就熟悉了,我们可以将最长子数组中字母和数字个数相同的最长长度,转换为最长子数组和为0;
  4. 有同学就有疑问了?怎么求最长子数组和为0呢?我们可以在遍历这个字符串数组中把遇到的数字进行加1操作,遇到的字母进行减1的操作,或者反过来都是可以的,该过程通过预处理前缀和求解;
  5. 接下来我们在遍历前缀和数组的时候,如果直接通过双重循环求解最终结果的话,肯定是超时,那么该怎么解决呢?我们可以通过Hash表记录位置来进行求解。
  6. 此时我们可以通过Hash表来求解,该过程的思路和俩数之和的思路很想,在收集答案的过程中,此时我们需要维护一个前缀和等于0的区间。right-left=0,也就是right=left。
  7. 如果当前Hash表不包含当前的值,直接加入当前值作为key,和当前的下标作为value。如果存在当前的key,那么我们就可以尝试更新答案,找到最长的子串,并且记录最左的位置在哪里。
  8. 最后,我们找到了left最长子数组的最左下标,max最长子数组的长度,此时我们开辟数组空间,直接求解。返回最终收集到的数据。

实现代码

class Solution {public String[] findLongestSubarray(String[] array) {int n=array.length;int[] arr=new int[n+1];for(int i=0;i<n;i++){arr[i+1]=arr[i]+(Character.isLetter(array[i].charAt(0))?-1:1);}HashMap<Integer,Integer> map=new HashMap<>();map.put(0,0);int max=0,left=-1;for(int i=0;i<=n;i++){int curSum=arr[i];if(map.containsKey(curSum)){if(i-map.get(curSum)>max){max=i-map.get(curSum);left=map.get(curSum);}}else{map.put(curSum,i);}}String[] res;if(left!=-1){res=new String[max];int cnt=0;for(int i=left;i<left+max;i++){res[cnt++]=array[i];}}else{res=new String[]{};}return res;}
}

在这里插入图片描述

运行结果

在这里插入图片描述

http://www.hengruixuexiao.com/news/44383.html

相关文章:

  • 做全景图的网站河南靠谱seo地址
  • 网站自适应框架引流用什么话术更吸引人
  • 东营新闻综合频道在线直播重庆百度推广优化排名
  • 如何做网站推广页面百度竞价点击神器奔奔
  • 做公司网站有什么亮点域名注册后怎么使用
  • 个人网站页面设计作品广告公司图片
  • 一张图看懂企业所得税谷歌seo优化怎么做
  • 少儿英语做游戏网站推荐台州seo优化公司
  • 对网站的建议和优化关键词有哪些?
  • 网站区域名怎么注册关键词的优化和推广
  • 网站怎么做排名优化沈阳seo博客
  • 网站排名优化外包seo怎么才能优化好
  • 网站的域名起什么好处百度网站快速优化
  • 延安网站设计公司windows优化大师卸载
  • 沈阳市工伤网站做实做手机关键词快速排名软件
  • 有二维码怎样做网站软文推广什么意思
  • 自媒体网站 程序seo提高网站排名
  • 个人网站免费百度文章收录查询
  • 用腾讯云做淘宝客网站视频流程怎么注册自己公司的网址
  • 网站建设流程及细节武汉seo网站优化
  • 做网站月入5万深圳百度seo哪家好
  • 百度上公司做网站怎么做营销推广方案
  • 网站建设的公司收费正规的教育培训机构有哪些
  • 学做网站需要多久百度关键词广告怎么收费
  • 沈阳做网站黑酷科技百度数据分析
  • 网站建设地图怎么设置搜索引擎优化营销
  • 临泉建设网站抄一则新闻四年级
  • 梵美传媒网站是谁做的电商平台
  • 58招聘网站官网推广产品的软文怎么写
  • 湛江市品牌网站建设怎么样整站优化