给定一个字符串 s
,请你找出其中不含有重复字符的 最长子串 的长度。
1. 无重复字符的最长子串 - 力扣(LeetCode) (leetcode-cn.com)
func lengthOfLongestSubstring1(s string) int {
dic := map[byte]int{}
length, i := 0, -1
for j := 0; j < len(s); j++ {
if _, ok := dic[s[j]]; ok {
//更新左指针 i,dic[s[j]]上一次字符s[j]的索引
if dic[s[j]]> i{
i= dic[s[j]]
}
}
dic[s[j]] = j // 哈希表记录索引
// 更新结果
if length <j-i{
length = j-i
}
}
return length
}
2、数组中的重复数字:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
第一种解法:先排序再扫描。从排好序的数组进行遍历,记录当前位置与其之前位置的数进行比较,若相等则输出该数。
时间复杂度:O(nlogn);空间复杂度O(1)
第二种解法:对数组进行遍历ÿ