- 博客(14)
- 收藏
- 关注
原创 LeetCode DFS & Backtracking系列: 17, 46, 47, 77, 78, 90, 286, 76, 93题解系列2:(77,78,90) (python)
LeetCode 17, 46, 47, 77, 78, 90, 286, 79, 93: DFS & Backtracking方法题解 (python) 描述: DFS 是一种非常重要的算法思想,也有很多具体的应用。这里简单总结一下LeetCode中比较基础,比较典型的DFS / Backtracking法的应用。在这里试图总结出一个“通用”的模版,以及一些题需要的注意的点。 链接: 17. Letter Combinations of a Phone Number. 链接: 46. Permut
2020-08-06 09:50:29
240
原创 LeetCode DFS & Backtracking系列: 17, 46, 47, 77, 78, 90, 286, 76, 93题解系列1:(17,46,47) (python)
LeetCode 17, 46, 47, 77, 78, 90: DFS & Backtracking方法题解 I(python) 描述: DFS 是一种非常重要的算法思想,也有很多具体的应用。这里简单总结一下LeetCode中比较基础,比较典型的DFS-Backtracking法的应用。在这里试图总结出一个“通用”的模版,以及一些题需要的注意的点。 链接: 17. Letter Combinations of a Phone Number. 链接: 46. Permutations. 链接: 47
2020-08-03 14:07:05
272
原创 LeetCode 130, 200, 694, 695, 733 (“岛” 系列): DFS方法题解(python)
LeetCode 130, 200, 694, 695, 733 (“岛” 系列): DFS方法题解(python) 描述: Leetcode之中有一类题目,给定一个用二维数组表示的类似的迷宫/围棋/岛屿, 然后有诸如找有多少个岛屿(130, 200),或者有多少个不一样的岛屿(694),或者最大岛屿的面积(695)之类的要求。这些题目大体上存在三种解法: DFS(深度优先搜索),BFS(广度优先搜索),Union Find。在这里总结一下岛屿类问题的DFS方法求解。 链接: 130: Surrounde
2020-08-02 07:53:12
468
原创 LeetCode 105: Construct Binary Tree From Preorder and Inorder Traversal题解(python)
LeetCode 105: Construct Binary Tree From Preorder and Inorder Traversal 分类:Tree & Recursion 难度:M 描述:给了一个树的先序遍历和中序遍历的结果,让把这歌二叉树给复现出来。 preorder = [3,9,20,15,7] inorder = [9,3,15,20,7] Tree: 3 / \ 9 20 / \ 15 7 链接: Construct Binary T
2020-07-22 09:29:28
288
原创 LeetCode 325: Maximum Size Subarray Sum Equals k题解(python)
Leetcode 325: Maximum Size Subarray Sum Equals k 分类:Hash 难度:M 描述:给了一个数组,一个数字k,问数组中子序列中,相加等于k的最长子序列的长度。 Input: nums = [1, -1, 5, -2, 3], k = 3 Output: 4 Explanation: The subarray [1, -1, 5, -2] sums to 3 and is the longest. Input: nums = [-2, -1, 2, 1], k
2020-07-21 10:35:30
930
原创 LeetCode 61: Rotate List题解(python)
Leetcode 456: 132 Pattern 分类:Rotate List 难度:M 描述:给了一个链表,给了一个数字,按照要求旋转这个链表。 Input: 1->2->3->4->5->NULL, k = 2 Output: 4->5->1->2->3->NULL Explanation: rotate 1 steps to the right: 5->1->2->3->4->NULL rotate 2 ste
2020-07-20 10:24:13
251
原创 LeetCode 456: 132 Pattern题解(python)
Leetcode 456: 132 Pattern 分类:Stack 难度:M 描述:给了一个列表,问列表中存不存在满足“132”型的元素。所谓“132”型,即当i<j<k时,数组元素ai<ak<aj. Input: [1, 2, 3, 4] Output: False Explanation: There is no 132 pattern in the sequence. Input: [3, 1, 4, 2] Output: True Explanation: There i
2020-07-19 14:07:13
293
原创 LeetCode 143: Reorder List 题解(python)
Leetcode 143: Reorder List 分类:Linked List 难度:M (M+?) 描述:给了一个linkedlist,要按照一定的顺序把它重新排序。排序方法见示例。注意要求的是不可以改变每个节点的值,而是以节点为单位进行操作。没有返回值。 Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… Given 1->2->3->4, reorder it
2020-07-18 13:27:31
327
原创 LeetCode 92: Reverse Linked List II题解(python)
Leetcode 92: Reverse Linked List II 分类:Linked List 难度:M 描述:类似于206:Reverse Linked List。不同的是,给了一个Linked List,给了两个数字,让把两个数字中间的链表反转。并且在一次扫描中完成任务。 Input: 1->2->3->4->5->NULL, m = 2, n = 4 Output: 1->4->3->2->5->NUL ...
2020-07-17 10:54:46
401
原创 LeetCode 287: Find the Duplicate Number题解(python)
Leetcode 287: Find the Duplicate Number 分类:Binary Search 难度:M 描述:给了一个长度为n + 1的数组,数组中的树大小在1和n之间。证明这个数组中一定有重复的数字,并且把它找出来。 Input: [1,3,4,2,2] Output: 2 Input: [3,1,3,4,2] Output: 3 链接: Find the Duplicate Number. 思路: 在这里首先说一个原理: 抽屉原理.简单来说,就是11个苹果想放进10个或更少的抽屉
2020-07-16 12:25:07
320
原创 LeetCode 15: 3Sum题解(python)
Leetcode 42: Trapping Rain Water 分类:Two pointers 难度:M 描述:给了一个数组,问数组中存不存在a, b, c三个元素,使a + b + c = 0。把这些数组都找出来。 Given array nums = [-1, 0, 1, 2, -1, -4], A solution set is: [ [-1, 0, 1], [-1, -1, 2] ] 链接: 3Sum. 思路: 本题使用双指针法,遍历数组,然后每次遍历中使用前后指针搜索是否存在满足条件
2020-07-15 13:07:04
235
原创 LeetCode 42: Trapping Rain Water题解(python)
Leetcode 42: Trapping Rain Water 分类:Stack (Monotonic Stack) 难度:Hard (H-/M+) 描述:给了一个整数数组,这个数组可以模拟成一个积水的槽。问这个水槽最大能积多少个单位面积的水 Input: [0,1,0,2,1,0,1,3,2,1,2,1] Output: 6 由此图示可见,有六个单位面积的蓝色,对应着六个单位面积的积水。 链接: Trapping Rain Walter. 思路: 此题主要思路是维护一个递减栈。当遇到一个不断递减的b
2020-07-15 12:29:08
584
原创 LeetCode 2: Add Two Numbers题解(Python)
Leetcode 2: Add Two Numbers 分类:Linked List 难度:Midium (M-) 描述: 给两个链表(linked list),链表元素是int形式,求两个链表代表的数的和 Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8 Explanation: 342 + 465 = 807. 链接: Add Two Numbers 思路: 此题稍微麻烦之处在于要用linked lis
2020-07-14 12:02:11
331
原创 PySpark笔记(I)
PySpark笔记(I) Pyspark连接本地hive Pyspark强大之处在于与hive,hbase等协同使用。如果从hive中按照csv格式导出表再倒入spark,则多此一举。 // 使用hivesupporter,选取master节点名 spark = SparkSession.builder.enableHiveSupport().master('local').appName('task').getOrCreate()//本地节点,使用local(即localhost) spark.sql('
2020-07-13 14:15:14
506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人