09 2020 档案
摘要:103.二叉树的锯齿形层次遍历。给定一个二叉树,逐层进行遍历,同时每下一层改变遍历的顺序,即第一层从左往右遍历,第二层从右往左,由此类推。这个问题就是二叉树广度优先搜索的一个变体。广搜的时候,逐层存放已经遍历过的节点,再循环取出添加节点的子节点,这道题就是在存储取出的顺序上稍作变化就行。广搜需要的是先进先出,而这道题存在两个方向上进出情况,所以最好使用双向队列,可以在两端进行进队出队操...
阅读全文
摘要:89.格雷编码。给定格雷编码的位数,给出格雷编码的列表,其中列表相邻的元素之间格雷编码只有一个位数不同。其实只要明白格雷编码的生成规律就可以简单的解决了。首先,格雷编码为一种二进制编码,1位格雷编码为0和1,n(n>1)时,前一半为n-1位编码前面加上0,后一半为n-1位编码逆序,再在前面加上1,转换成十进制后,前一半即为n-1位编码,后一半就是n-1位编码逆序再加上2n-1,就得到最...
阅读全文
摘要:79.单词搜索。给定一个包含字母的矩阵,和一个单词字符串,查找是否能通过矩阵中相邻不重复的字母串组成对应单词。这是一个典型的回溯问题,每次从一个字母出发,查找相邻字母是否能继续构成单词,找到了就继续,找不到就回退,所以用个递归就正好可以解决,同时注意边界检测,同时每次遍历的时候将遍历过的元素置零,避免重复遍历。
阅读全文
摘要:73.矩阵置零。给定一个带有0元素的矩阵,返回一个矩阵,其中原矩阵所有0所在的行和列所有元素都要置零。首先能想到的是用一个新矩阵,存储所有的0,然后对同行同列的元素置零,剩下的保留原矩阵的值。但是题目有要求减少额外空间的使用,这样很明显使用了太多的额外空间,于是更进一步,由于存在原矩阵中0本身就在同一行或同一列的情况,所以可以只存所有0的行号和列号,然后根据行号列号在原矩阵进行更改。 ...
阅读全文

浙公网安备 33010602011771号