这道题主要就是得先扫描建图,然后就可以通过bfs找到最短路径抵达,然后建图我们也不需要完全建,用个中间态的存储法即可,也就是把每一个单词的某一个字符改为通配符对应的候选项放在一个节点下,这样我们只需要遍历 $N*L^2$,而不需要遍历 $N^2*L$,节省了一定的时间复杂度,当然这样做相当于在BFS阶段的队列长度相对会变大,但总体来说还是节省了一定的时间复杂度,特别是在N比较大的情况下。fu...
Articles in the category of Leetcode
- Home
- Leetcode
这个题目需要求时针和分针成180度的次数和对应时间点,我们知道时针每个小时走30度,每分钟还会走0.5度,分针每分钟走6度,所以要求的夹角就是abs(时针...
这个题目比较恶心,直接进行交换的循环会有重复的交换导致最终结果不符合,顺时针旋转90度,需要先转置,再左右翻转,转置相当于把右上方的部分跟左下方的部分进行交换,中间那一条线是不需要换的。左右翻转相当于把左半部分跟右半部分进行交换,同样的中间那条线不需要交换。func rotate(matrix [][]int) { n := len(matrix) // 先转置 f...
这道题要求最长的连续序列,所以我们把所有的数录入到哈希表里面,用 map[int]bool,然后遍历这个哈希表,如果对应的 k-1 是不存在的说明这是一个...
这道题需要注意的是k可能不止一位数,所以需要按照下面的规则进行:读取到 [ ,把当前的读取到的字符串和 repeat 值分别存储到一个栈。每次读到 a-z 的字符直接拼接到当前字符串即可读取到数字,累加 repeat 值读取到 ],则需要取出栈内数字和栈内字符串,栈内数字用于把当前字符串重复 k 次,栈内字符串用于拼接在当前字符串的前边作为前缀,这样一套整体的流程下来即可符合题意。func ...