摘要: 给定一个没有重复数字的序列,返回其所有可能的全排列。 本来我是想学之前的T62 有限路径 T89 格雷编码 那种选择有限的递归,但是我发现我不太会返回,自己写的递归还是有欠缺,还是去看答案 答案跟我之前写的一样,可能我有些细节不太行把,先把答案放过来 ************************ 阅读全文
posted @ 2020-01-28 20:43 ChevisZhang 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 本题思路:先生成一个 n^2的矩阵,定义上下左右四个边界变量 1.本题最精妙的地方就是 边界的迭代刚好与矩阵中数字填入顺序相同 for i in range(l,r+1): for i in rang 阅读全文
posted @ 2020-01-28 19:24 ChevisZhang 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 本题需要螺旋打印一个二维数组,即每打印一层旋转一次。 所以本题需要用到旋转矩阵这一操作。 转载自 https://blog.csdn.net/ezio23/article/details/81414092 zip可以将输入的两个一维列表,逆时针转置成一个二维数组 zip(a,b) zip(*zipp 阅读全文
posted @ 2020-01-28 13:17 ChevisZhang 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 又是链表的题目,本题要求将所有nodes 向右移动K位 我初步的想法是把其所有val添加到 容器中 ,like List , 然后再List里操作完了再放入链表,让我先去看看答案。 答案: 先将链表变成环状,然后再从移动好之后的位置打开。 OK,我写完了,中间有几个细节需要注意 class Solu 阅读全文
posted @ 2020-01-28 11:55 ChevisZhang 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 妈呀 这62,78,89三道题都是一模一样的做法感觉: 62:长度一定的路径,每一步选择 向右 或向下 (递归顺序无关) 78:长度一定的列表,每一个元素选择 放入或不放入 (递归顺序无关) 89:长度都为n,上次加入的元素为0 就先递归0 再递归1; 上次加入的元素为1,就先递归1 后递归0。 O 阅读全文
posted @ 2020-01-28 10:55 ChevisZhang 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 这也是一题递归的题,我仿照87.grayCode 那题编写的代码 class Solution: def subsets(self, nums: List[int]) -> List[List[int]]: if not nums: return [] res = [] def getList(L, 阅读全文
posted @ 2020-01-27 23:13 ChevisZhang 阅读(79) 评论(0) 推荐(0) 编辑
摘要: https://leetcode-cn.com/problems/gray-code/ 又是一道递归题,答案作者写的都相当精妙,不过可读性就很差了,难受。 本题是要使得将前 2^n 个数字,按一定二进制顺序排序。 我想,如果我设计一个按从小到大排列的递归算法会是怎么样的: def nums2list 阅读全文
posted @ 2020-01-27 19:21 ChevisZhang 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 我最想刷的递归又来啦,待我先去好好研究一下。 据说T124是T104的进阶,所以先去刷下104 104: 顶层: 即在真正的root节点上,我要返回的是一个数字,而且要比我的左右节点返回的深度大1 def maxDepth(self,root): return max(maxDepth(root.l 阅读全文
posted @ 2020-01-27 14:51 ChevisZhang 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 这题 要求常熟空间复杂度有点难,所以只要求 O(n)好了 这题用了hashTable (字典) 有个结构可以学: 如果存在,则取出元素,如果不存在,则添加 try: hashTable.pop(num) except: hashTable[num] = 1 阅读全文
posted @ 2020-01-26 16:04 ChevisZhang 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 链表又来了,可见ListNode 这个数据结构出现之频繁。 本题求解链表中是否存在环路,让我去看看题解怎么区分环路。 盲猜双指针法 两种方法: 1.set,比用List快很多 2.快慢指针 知识点: 1.链表中假定所有元素都不重复,所以只要出现重复元素就说明有循环 空间复杂度>O(1) 1.因为 之 阅读全文
posted @ 2020-01-26 16:02 ChevisZhang 阅读(99) 评论(0) 推荐(0) 编辑