为艺术而技术

Leetcode Day11 -- 搜索与回溯

19 February, 2022

矩阵中的路径 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false…

Leetcode Day10 -- 双指针

17 February, 2022

删除链表的节点 我一开始的难点在于如何保存头节点,这里很巧妙地使用pre和cur来避开了原始的指针的移动。 时间O(n),空间O(1) 链表中倒数第n个节点 重点是先求出总长度。 时间O(n), 空间O(…

Leetcode Day9 -- 动态规划3

28 January, 2022

把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z…

Leetcode Day8 -- 动态规划2

27 January, 2022

连续子数组的最大和 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 关键是连续的,既然要求时间O(n),只能扫描一遍。不能采用O(n^…

Leetcode Day7 -- 动态规划

26 January, 2022

Fibonacci数列 递归的方式效率不行,不能通过所有测试(小丑竟是我自己!)不要用递归。 为什么上面这个不行?原因在于取模要在循环里面取。 标准答案如下: 动态数组法。 空间O(1),时间O(n) 青蛙跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上…

Leetcode Day6 -- 查找与回溯2

25 January, 2022

判定一个树是不是另外一个树的子结构 递归加先序遍历 时间O(MN),空间O(M…

Leetcode Day5 -- 查找与回溯

24 January, 2022

从上到下打印二叉树 本来挺简单的一个迭代就行了,可是现实遇到编译不通过,改了写法后,又说循环有下面的问题: 后来仔细想下,这样即使成功也不是广度优先,而是深度优先。 原来这是典型的BFS(广度优先搜索问题),如下: 因为队列有FIFO…

Leetcode Day4 -- 查找2

23 January, 2022

在二维数组中查找 思路也很简单,因为行和列都是增序的。先从第一行中用二分法查找列的下标,找到后,再用二分法在那一列中查找行标。然后比较即可。但是上面的解法不能通过所有测试用例(白瞎我一个多小时)。标准答案如下: 这个思路就是如果这个数字大于目标值,向左移(columnn…

Leetcode Day3 -- 查找

22 January, 2022

查找任意一个重复数字 时间O(n^2),空间O(1),这个方法效率比较低。 官方答案如下: 时间O(n),空间O(n) 还有一个更好的答案: 时间是O(n),空间O(1),这个方法充分利用题目中所说数字最大时n-…

Leetcode Day2 -- 字符串

21 January, 2022

字符串替换 这个没有啥说的,两个方法, 时间O(n),空间O(n)。 第二种办法直接用API 我猜应该也是时间O(n),空间O(n)。毕竟扫描和新建一个字符串都不可少。 左旋字符串,也就是把前面几个移到后面去 也是两种办法,第一个使用API 时间应该是O(n),空间应该是O(n…

© 2019 - 2022 yuanqingfei
Creative Commons License