程序员面试金典17.05_go_字母与数字
题目给定一个放有字符和数字的数组 , 找到最长的子数组 , 且包含的字符和数字的个数相同 。
返回该子数组 , 若存在多个最长子数组 , 返回左端点最小的 。 若不存在这样的数组 , 返回一个空数组 。
示例 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"]
【程序员面试金典17.05_go_字母与数字】示例 2:输入: ["A","A"]输出: []
提示:array.length <= 100000
解题思路分析1、前缀和;时间复杂度O(n) , 空间复杂度O(n)
文章插图
func findLongestSubarray(array []string) []string { m := make(map[int]int) m[0] = 0 res := 0 begin := 0 total := 0 for i := 0; i < len(array); i++ {if '0' <= array[i][0]ok {if i-index > res {res = i - indexbegin = index + 1}} else {m[total] = i} } return array[begin : begin+res]}
总结Medium题目 , 使用前缀和进行统计 , 使用map记录第一次出现的位置
- 程序员为教师妻子开发应用:将iPhone变成文档摄像头
- 悔哭!一程序员误把7500个比特币当垃圾扔掉,估算约2.4亿美元
- 2.4亿美元打水漂!程序员小哥把7500个比特币当垃圾扔掉 硬盘找不回
- 程序员开发抢茅台脚本:2天就刷榜Github
- 为什么我喜欢C语言,却非常讨厌C++?一位国外程序员的回答
- 程序员怎么保护头发?雷军回应
- 北美程序员Tinder翻车实录
- 导航|攻坚“卫星导航信号弱”难题,高德程序员联手武大学子夺得国际室内定位大赛冠军
- 长沙|视频|聚焦“数字英雄”长沙银行冠名全国首档程序员电视真人秀
- 孙玲|从流水线女工逆袭成高薪程序员 一度爆红的她现在咋样了?