- 博客(17)
- 收藏
- 关注
原创 501. Find Mode in Binary Search Tree
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution(object): def findMode(self, root): .
2020-06-28 22:37:39
166
原创 Leetcode 98. Validate Binary Search Tree
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution(object): def isValidBST(self, root):.
2020-06-28 22:12:10
136
原创 Leetcode 210. Course Schedule II(Python实现)
思路:和Leetcode 207.Course Schedule一样,只不过将result逆序输出而已,代码就最后一行不一样~可以参考:Leetcode 207.Course Schedule的代码实现https://blog.csdn.net/lipsky_lipsky/article/details/105699821class Solution: def findOrd...
2020-04-23 09:54:18
269
原创 Leetcode 207. Course Schedule(Python实现)
思路:将边集合构成一个有向图,判断有向图中是否存在环,如果存在环,则一定不能完成该课程;如果不存在环,还需判断,能否遍历到每个结点,如果能遍历到,那么课程能全部完成,则不然。这里判断有向图中是否存在环,用拓扑排序来实现。class Solution: def canFinish(self, numCourses: int, prerequisites: List[List[int]]...
2020-04-23 09:28:02
359
原创 Leetcode 179. Largest Number
思路:按照cmp=x+y < y+x对其交换,也就是在sort函数中对其该规则进行排序。举个例子:input:['2', '10'] ,组成的字符串有两种可能性为'210' 和‘102’,显然其字符串对应的整数,210大于102, 所以要要比较的是x+y 和y+x;对于input list长度大于2的时候也是类似的思路。lambda函数这样子理解:x='2', y='10', x+y &...
2020-04-22 10:02:02
127
原创 Leetcode 38. Count and Say
思路:先得到n-1对应的字符串,对该字符串进行遍历,边遍历边统计,当和相邻的字符不相等时,就将该count和value加入到current字符串中,直到遍历结束。Python代码实现:class Solution(object): def countAndSay(self, n): """ :type n: int :rtype: ...
2020-04-22 08:08:16
109
原创 Leetcode 54. Spiral Matrix
思路:按照顺时针打印matrix,一圈圈的顺时针打印matrix的边框,matrix一圈圈的变小。input matrix:[[1, 2, 3],[4, 5, 6],[7, 8, 9]]output:[1, 2, 3, 6, 9, 8, 7, 4, 5]分析:第一圈(从i=0, j=0开始, m=3, n=3):先打印第一行,>> [1, 2, 3]; 再打印最...
2020-04-20 11:26:59
138
原创 Leetcode73. Set Matrix Zeroes
思路:要在matrix上面直接进行修改,如果边遍历,边修改的话,使得原来的matrix改变了,0的个数也变多了,所以要在原来的matrix中,直接记录下来0所在的位置的横坐标和纵坐标,再后面对matrix进行一起修改。import copydef change_row_column(nums, i, j): # 修改第i行和第j列的元素都变成0 for x in range(le...
2020-04-13 22:18:55
105
原创 Leetcode 75.Sort Colors
思路:对三种颜色分别进行计数,再对原来的数组进行覆盖写的操作。class Solution(object): # def sortColors(self, nums): # 直接调用了库函数sort() # """ # :type nums: List[int] # :rtype: None Do not return anythin...
2020-04-13 21:21:50
160
原创 [快手春招] 2020算法类笔试B卷题解
1.删除字符中连续字符长度大于2的字符,在消除的字符串上继续消除。(1)测试样例 input1:abbbssa[题目给出] output1:assa input2:sbbbssa[自己想的] output2:aac代码:def remove_str(s): for i in range(len(s)-1): ...
2020-04-12 23:17:16
588
2
原创 Leetcode 78. Subsets
思路:假如集合为{a, b, c},其子集为[], {c}, {b}, {a}, {b, c}, {a, c}, {a, b}, {a, b, c},一共有8个子集。这里可以看做是排列组合的问题,每个元素在子集中有两种选择,出现或者不出现,那么 3个元素,则有2^3种可能,所以有8个子集(这里已经包含空集了)。运用上述求子集数量的思想,子集一共有2^3种可能性,(从000-> 111,也...
2020-04-11 22:28:10
94
原创 Leetcode 238. Product of Array Except Self
思路:题目中说不能用除法;用暴力,会超时。为了计算 除第i个元素的乘积,可以将数组分为三个部分:1...i-1; i; i+1...n (注:这里的i代表序号,不是数组下标) output[i] = a * b[被乘数a:代表前i-1个数的乘积;乘数b:代表后n-i个数的乘积;output代表最后输出的结果] 所以之类求出a和b就可以了,求a和b的方法用累乘法...
2020-04-02 14:08:04
106
原创 Leetcode 198. House Robber
思路:n个房屋所能抢到的最大金额 = max(n-1个房屋所能抢到的最大金额, n-2个房屋所能抢到的最大金额+第n个房屋的金额)class Solution(object): def rob(self, nums): """ :type nums: List[int] :rtype: int """ i...
2020-03-31 22:32:23
92
原创 Leetcode 206. Reverse Linked List
思路:设置三个指针pre,cur,lat;循环结束的条件: cur指向最后一个,lat指向null# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass...
2020-03-31 21:54:10
108
原创 Leetcode 202. Happy Number
思路:用一个set,用判断n是否出现过作为跳出while的条件。class Solution(object): def get_square_sum(self, n): result = 0 while(n): result += (n % 10) ** 2 n //= 10 retur...
2020-03-31 21:39:30
84
原创 Leetcode 204. Count Primes
算法思路:用质数筛选算法:The Sieve of Eratosthenesclass Solution(object): def countPrimes(self, n): flag_list = [1] * n # 1代表素数;0代表非素数 count = 0 for i in range(2, n): # 最小的素数为2 ...
2020-03-31 21:08:57
159
原创 Leetcode 234. Palindrome Linked List
方法1 思路:将链表中的元素都保存list中,并判断这个list和反转后的list,是否相同,如果相同,则回文;否则,则不回文。 性能分析:时间复杂度为O(n);空间复杂度为O(n) [因为用到了extra space list]方法2 思路:将链表等分为两部分,判断前半部分和后半部分的逆序是否相等,如果相等,则回文,否则不回文。 性能分析:时间复杂度为O(n)...
2020-03-31 20:29:27
108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人