01 2021 档案
摘要:今天做到一道题,用到了**堆(heap)**这种数据结构。之前学数据结构的时候自己也实现过,但是刷题的时候还是无脑用STL吧😂。 然后我就突然发现自己从来没用过STL里面的堆,于是在这里记一下基本用法,免得后面又去网上搜。 我们先定义一个数组 vector<int> nums = {3,2,3,1
阅读全文
摘要:2021年寒假已经回家好几天了,在家稍作休息了一下,继续刷题。这两天在家有点着凉了,今天稍微有点感冒,但是刷题还是不能停。 今天我们看一下leetcode上 第166题 这道题是将两个正数的除法结果保存为string类型。如果除法结果是循环小数,需要把循环部分用括号括起来。 例如: Input: n
阅读全文
摘要:我们都知道,二叉树常见的操作之一就是遍历,leetcode上很多对二叉树的操作都是基于遍历基础之上的。 二叉树的遍历操作分为深度优先遍历和广度优先遍历,深度优先遍历包括前序、中序、后序三种遍历方式;广度优先遍历又叫层序遍历。 这两种遍历方式都是非常重要的,树的层序遍历一般是没法通过递归来实现,其遍历
阅读全文
摘要:这道题我原来是不会的,然后自己思考了一下,发现其实是个数学问题,虽然方法用的是双指针,但是我还是从数学层面进行解释吧。 这道题是在141. Linked List Cycle基础上的变形题,那道题就是用双指针法,一个快指针fast每次走两步,一个慢指针slow每次走一步,如果快指针能和慢指针相遇,则
阅读全文
摘要:今天又是刷leetcode的一天。 今天做的是139. Word Break,说实话,我知道这道题是用dp来做,dp的两大关键就是定义子问题和写出状态转移方程。 其实一般来说,找到了子问题往往也就能用递归来做,只不过递归过程中有很多重复计算,所以为了避免这种重复计算,很多时候我们都是使用一种记忆性递
阅读全文
摘要:这道题的tag是Bit Manipulation,意为位操作,说实话,我是完全没接触过这种解法的,我用了map做的,时间复杂度应该是O(n),但是因为用了map,空间复杂度是不符合题目要求的,题目要求不使用额外的空间。 这道题是用按位异或操作实现的,首先我们来复习一下什么叫异或操作。 异或的意思是相
阅读全文
摘要:今天又是刷leetcode的一天。 太难受了,今天第2道题就不会了,看了别人的解答才会的,记录一下吧,自己太笨了。 题目是134. Gas Station 这个问题如果用暴力算法去做的话是很简单的,就是从0出发到最后一个位置,以每个位置为起点试探一下,看看走一圈能不能回到自己,复杂度是O(n^2),
阅读全文
摘要:今天继续刷leetcode。 今天着重练习了一下回文串(Palindromic string)相关的题目,其中做到1457. Pseudo-Palindromic Paths in a Binary Tree这一道题的时候,自己方法没错,但跑了两次都是TLE,然后心态有点崩,就去看了一下别人的代码,
阅读全文

浙公网安备 33010602011771号