10 2020 档案
摘要:179.最大数。给定一个数字数组,返回排列组合之后数值最大的数字的字符串。这道题算是一个排序问题,只不过顺序不同与以往的单纯比大小。因为数组中数字位数不一致,如果单纯根据数字大小或者按位比较每个数,会比较麻烦,那么根据题意,如果x与y组合之后数值更大,那么x就应该在y之前,由此得到比较函数,然后通过
阅读全文
摘要:173.二叉搜索树迭代器。给一个二叉搜索树的根节点,构造出一个类对象,并实现next()和hasNext()方法。这种题还是第一回见,本身不是有多难。其实就是找个方式,能够将二叉搜索树保存的同时,简化迭代的过程。因为是二叉搜索树,每次迭代下一个元素就相当于升序遍历所有的元素,那么升序存储所有的元素就
阅读全文
摘要:151.翻转字符串里的单词。给定一个由单词和空格组成的字符串,符号也算在单词里,给出将单词调转顺序,且空格只在单词间出现一次的字符串。看到这道题第一反应就是按顺序读取单词,然后翻转拼接成结果。这样就没啥难度了,于是有了进阶的问题,将空间复杂度控制在O(1)。就是说尽量愿地修改。首先想到的是双指针,两边同时遍历,当都读完一个单词时将单词互换,直到指针相遇为止。单单这个想法本身并没有太大问...
阅读全文
摘要:139.单次拆分。给定一个单词和字典,检查单词是否可以通过字典里的元素线性组合而成。看到这个问题第一反应是通过回溯法,每次对单词开头进行查找,在字典里找到的话就将当前字减去,直到单词为空。本身算法并没有太大的问题,但是提交的时候碰到一些比较极端的用例会出现超时的情况。比如单词为aaaaaaaaaaaaaaaaaaab,字典为[a, aa, aaa, aaaa, aaaaa],此时如果进...
阅读全文
摘要:从几天前,不知道因为什么原因,在vscode刷leetcode题目的时候突然发现无法进行提交,看了眼错误消息,显示是登录失效,结果发现,竟然无法正常登陆。虽然这不算什么很严重的事,但是毕竟vscode刷题还是比较便捷的,所以还是想尽量解决。 先是从网上找各种登录方法,先是试着用github第三方登陆
阅读全文
摘要:137.只出现一次的数字。给定一个数字列表,其中除了一个数字与其他都不同以外,其他的数字都出现了三次,要求输出这个单独的数字。这道题有一个低阶版本,就是其他数字出现两次,可以巧妙地利用异或运算,与本身异或为0,与0异或为本身,那么将所有数字全都进行异或运算,相同的数字都变成0而最后留下单独的数字,那
阅读全文
摘要:131.分割回文串。给定一个字符串,返回所有可能的分割,其中每一种分割出来的子串都符合回文的特点。这一题主要分成两个步骤,一个是分割,一个是判断回文。首先是利用回溯,获得每一种分割的可能性,在分割的过程中判断每次分割的子串是否是回文子串即可。
阅读全文
摘要:109.有序链表转换二叉搜索树。给定一个链表,将其构造成为一个平衡二叉树。因为要是平衡的二叉树,最好就是从链表的中间进行构造,递归完成。那么如何找到中间的节点就是这道题的关键。一个思路是在递归之前先对链表进行遍历,通过快慢指针找到中间节点,再对链表进行递归构造成为二叉树。另一种则是根据链表的长度找到中间位的位置,提前预留中间位,在构造进行到中间位时再将中间位的值传递进去。
阅读全文

浙公网安备 33010602011771号