摘要: 从几天前,不知道因为什么原因,在vscode刷leetcode题目的时候突然发现无法进行提交,看了眼错误消息,显示是登录失效,结果发现,竟然无法正常登陆。虽然这不算什么很严重的事,但是毕竟vscode刷题还是比较便捷的,所以还是想尽量解决。 先是从网上找各种登录方法,先是试着用github第三方登陆 阅读全文
posted @ 2020-10-12 19:08 小小的豪猪窝 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 137.只出现一次的数字。给定一个数字列表,其中除了一个数字与其他都不同以外,其他的数字都出现了三次,要求输出这个单独的数字。这道题有一个低阶版本,就是其他数字出现两次,可以巧妙地利用异或运算,与本身异或为0,与0异或为本身,那么将所有数字全都进行异或运算,相同的数字都变成0而最后留下单独的数字,那 阅读全文
posted @ 2020-10-12 17:17 小小的豪猪窝 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 131.分割回文串。给定一个字符串,返回所有可能的分割,其中每一种分割出来的子串都符合回文的特点。这一题主要分成两个步骤,一个是分割,一个是判断回文。首先是利用回溯,获得每一种分割的可能性,在分割的过程中判断每次分割的子串是否是回文子串即可。 阅读全文
posted @ 2020-10-09 08:58 小小的豪猪窝 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 109.有序链表转换二叉搜索树。给定一个链表,将其构造成为一个平衡二叉树。因为要是平衡的二叉树,最好就是从链表的中间进行构造,递归完成。那么如何找到中间的节点就是这道题的关键。一个思路是在递归之前先对链表进行遍历,通过快慢指针找到中间节点,再对链表进行递归构造成为二叉树。另一种则是根据链表的长度找到中间位的位置,提前预留中间位,在构造进行到中间位时再将中间位的值传递进去。 阅读全文
posted @ 2020-10-02 11:12 小小的豪猪窝 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 103.二叉树的锯齿形层次遍历。给定一个二叉树,逐层进行遍历,同时每下一层改变遍历的顺序,即第一层从左往右遍历,第二层从右往左,由此类推。这个问题就是二叉树广度优先搜索的一个变体。广搜的时候,逐层存放已经遍历过的节点,再循环取出添加节点的子节点,这道题就是在存储取出的顺序上稍作变化就行。广搜需要的是先进先出,而这道题存在两个方向上进出情况,所以最好使用双向队列,可以在两端进行进队出队操... 阅读全文
posted @ 2020-09-26 14:30 小小的豪猪窝 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 89.格雷编码。给定格雷编码的位数,给出格雷编码的列表,其中列表相邻的元素之间格雷编码只有一个位数不同。其实只要明白格雷编码的生成规律就可以简单的解决了。首先,格雷编码为一种二进制编码,1位格雷编码为0和1,n(n>1)时,前一半为n-1位编码前面加上0,后一半为n-1位编码逆序,再在前面加上1,转换成十进制后,前一半即为n-1位编码,后一半就是n-1位编码逆序再加上2n-1,就得到最... 阅读全文
posted @ 2020-09-18 13:19 小小的豪猪窝 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 79.单词搜索。给定一个包含字母的矩阵,和一个单词字符串,查找是否能通过矩阵中相邻不重复的字母串组成对应单词。这是一个典型的回溯问题,每次从一个字母出发,查找相邻字母是否能继续构成单词,找到了就继续,找不到就回退,所以用个递归就正好可以解决,同时注意边界检测,同时每次遍历的时候将遍历过的元素置零,避免重复遍历。 阅读全文
posted @ 2020-09-08 14:13 小小的豪猪窝 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 73.矩阵置零。给定一个带有0元素的矩阵,返回一个矩阵,其中原矩阵所有0所在的行和列所有元素都要置零。首先能想到的是用一个新矩阵,存储所有的0,然后对同行同列的元素置零,剩下的保留原矩阵的值。但是题目有要求减少额外空间的使用,这样很明显使用了太多的额外空间,于是更进一步,由于存在原矩阵中0本身就在同一行或同一列的情况,所以可以只存所有0的行号和列号,然后根据行号列号在原矩阵进行更改。 ... 阅读全文
posted @ 2020-09-04 16:23 小小的豪猪窝 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 71.简化路径。给定一个Unix风格的路径,对路径中相对引用进行简化,给出简化后的绝对路径。其实问题本身就是一个先进先出的过程,很容易就能想到用栈的结构,即每次遇到代表目录的字符串,则进栈,遇到”.”跳过,遇到”..”则将栈顶元素弹出,最后再将栈中内容输出即可。 阅读全文
posted @ 2020-08-28 15:24 小小的豪猪窝 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 61.旋转链表。给定一个链表和旋转距离,返回链表向后旋转的结果。比如链表1->2->3,旋转2个位置,结果为2->3->1。其实就是要找到旋转之后的链表的头指针和尾指针,可以直接双指针往后遍历得到新的头尾指针,为了防止访问到空指针,可以将原链表头尾相连形成循环链表。另外给定的距离可能比链表长度长,所以先得到链表长度,对距离进行取余操作。 阅读全文
posted @ 2020-08-21 16:44 小小的豪猪窝 阅读(114) 评论(0) 推荐(0) 编辑