这道题主要就是得先扫描建图,然后就可以通过bfs找到最短路径抵达,然后建图我们也不需要完全建,用个中间态的存储法即可,也就是把每一个单词的某一个字符改为通配符对应的候选项放在一个节点下,这样我们只需要遍历 $N*L^2$,而不需要遍历 $N^2*L$,节省了一定的时间复杂度,当然这样做相当于在BFS阶段的队列长度相对会变大,但总体来说还是节省了一定的时间复杂度,特别是在N比较大的情况下。fu...
Articles in the category of 编程技术杂谈与总结
- Home
- 编程技术杂谈与总结
这个问题比较复杂,简单的一个 rapidjson 的 Parse 逻辑。现象来看却产生rapidjson allocator未定义的core dump,经...
这个题目需要求时针和分针成180度的次数和对应时间点,我们知道时针每个小时走30度,每分钟还会走0.5度,分针每分钟走6度,所以要求的夹角就是abs(时针走的角度-分针走的角度)=180即可。那么abs(30 h + 0.5 m - 6 m) = 180 -> 30 h - 5.5 m = ±180 -> m = (30 h ± 180) / 5.5所以只需要遍历h=...
这个题目比较恶心,直接进行交换的循环会有重复的交换导致最终结果不符合,顺时针旋转90度,需要先转置,再左右翻转,转置相当于把右上方的部分跟左下方的部分进行...
这道题要求最长的连续序列,所以我们把所有的数录入到哈希表里面,用 map[int]bool,然后遍历这个哈希表,如果对应的 k-1 是不存在的说明这是一个序列起点,然后循环遍历到 cur+1 不存在,对应累计下来的序列长度是连续序列,且对应的长度用来更新最大长度,按照这个流程下来,最终的结果就是最大序列长度。func longestConsecutive(nums []int) int { ...