
leecode 中等
xiabe
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
923. 3Sum With Multiplicity
题目 个人思路 个人思路考虑的是先将它们计数出来每一个元素的个数,然后从set(A)取不重复有序的i,j,k: 然后分两种情况:i,j,k中是否有重复: 没有重复直接cnt[i]*cnt[j]*cnt[k]即可。 如果有重复,需要验证元素量是否足够,然后对重复元素递减-1相乘。 这样的效率较低。 其他方案 class Solution: def threeSumMulti(self, A...原创 2019-04-15 17:37:49 · 224 阅读 · 0 评论 -
306. Additive Number(挺难的)
题目 判断一个字符串是否属于斐波那契数列:Fibonacci sequence之类的东西。 自己属实看到这个题目,一点没摸着头脑。 代码 总的思路,就是从组合中找到一个开始a+b=c的序列,然后继续判断是否属于这个序列的规律。 class Solution: def isAdditiveNumber(self, num): n = len(num) for...原创 2019-04-20 14:12:34 · 214 阅读 · 0 评论 -
445. Add Two Numbers II
题目 我的代码(打败了99.6%) 简单来说就是先将list转化为int,然后计算,然后再转换为int。 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solut...原创 2019-04-20 00:02:29 · 142 阅读 · 0 评论 -
2. Add Two Numbers
题目 题目大意为计算两个链表数字的和,然后返回一个链表对象。 我的代码 简单来说,就是将链表值先转化为int值,然后转化为最终结果为链表,返回。 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next ...原创 2019-04-19 23:54:38 · 106 阅读 · 0 评论 -
623. Add One Row to Tree
题目 给一颗树的第n层加入v值。 我的代码 思路比较简单,就是DFS。 分为三种情况,一种是下一层,那么直接添加。一种是要在第一层,是一个特殊情况,其他情况下往下逐层遍历即可。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # ...原创 2019-04-19 23:23:09 · 140 阅读 · 0 评论 -
721. Accounts Merge
题目 就是说给出一系列人物的名字和邮箱,里面的人可能重名,但要将列表合并,将同人物的邮箱合并起来。 思路及代码 第一步,我们先假定有以下的列表: [ ["John", "johnsmith@mail.com", "john00@mail.com"], # Account 0 ["John", "johnnybravo@mail.com"], # Account 1 ["John", "johnsm...原创 2019-04-18 12:29:46 · 263 阅读 · 0 评论 -
454. 4Sum II
题目 简单来说就是从ABCD中各取出一个数字,使他们的和为0。 简单来说就是要利用好 { } dict的特性。 下面,使用了一个ab dict 简单的二行解法 class Solution: def fourSumCount(self, A, B, C, D): AB = collections.Counter(a+b for a in A for b in B) ...原创 2019-04-18 11:46:38 · 137 阅读 · 0 评论 -
16. 3Sum Closest
题目 从给出的numbers数组中找出三个数组最接近于目标结果。 讨论区代码 class Solution: # @return an integer def threeSumClosest(self, num, target): num.sort() # 排序 result = num[0] + num[1] + num[2] #前三个 ...原创 2019-04-15 16:01:19 · 139 阅读 · 0 评论 -
863. All Nodes Distance K in Binary Tree(BFS学习)
题目 寻找距离与目标的差距为K的各个值。 代码 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solut...原创 2019-04-21 15:51:54 · 166 阅读 · 0 评论 -
215. Kth Largest Element in an Array
题目 求出数组中第k大的数字。 我的代码(维持一个k的列表) class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: d=nums[:k] d.sort() for i in range(k,len(nums)): if...原创 2019-04-13 15:43:32 · 190 阅读 · 0 评论 -
875. Koko Eating Bananas
题目 问题概述:给定一组香蕉,以一定的速度吃,求出最慢的速度吃完香蕉在H小时内。 我的代码 使用了二分查找的思路,从1到max中,查找适合的结果,精益求精。 class Solution: def minEatingSpeed(self, piles: List[int], H: int) -> int: maxk=max(piles) mink=1...原创 2019-04-13 14:59:11 · 229 阅读 · 0 评论 -
870. Advantage Shuffle
题目 这道题颇有田忌赛马的意思,尽可能让我们的4匹马赢过对面4匹马。 总的思路来说,尽可能找最大的和对面最大的比,如果胜,这派最大的出战, 如果败,则将最弱的迎战对面对强,即可。 代码(排序) 代码总体来说比较简单。 class Solution: def advantageCount(self, A, B): A = sorted(A) ...原创 2019-04-20 20:32:56 · 203 阅读 · 0 评论 -
688. Knight Probability in Chessboard
题目 求一个象棋,马在n*n的棋盘上从(r,c)开始,随机走k步的概率不会走出棋盘的概率。 我的代码(尝试使用递归暴力破解失败) class Solution: def knightProbability(self,N,K,r,c): if K==0: return 1.0 count=0 if K==1: ...原创 2019-04-13 14:11:04 · 218 阅读 · 0 评论 -
779. K-th Symbol in Grammar
题目 大概的意思就是形成一个N层的序列,就像 0 01 0110 01101001 我们可以发现前半部分它们完全相同,后半部分是前半部分求反的结果。 但碍于对于位运算的不理解,并没有得出代码,于是查看讨论区。 高效代码 class Solution(object): def kthGrammar(self, N, K): """ :type N: int ...原创 2019-04-13 13:12:38 · 221 阅读 · 0 评论 -
343. Integer Break
题目 将一个整数拆成若干数的和,然后求它们的积使之成为最大值。 我的代码 我发现尽量让3这个元素尽可能的多更快求出最大值。 class Solution: def integerBreak(self, n: int) -> int: if n==2: return 1 if n==3: return 2...原创 2019-04-13 01:48:32 · 146 阅读 · 0 评论 -
147. Insertion Sort List
题目 对一个链表插入排序。 使用了简单的指针方法。 我的代码(效率太低没办法通过) # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: de...原创 2019-04-13 01:43:43 · 146 阅读 · 0 评论 -
380. Insert Delete GetRandom O(1)
题目 设计一个数据结构可以支持以下的操作在O(1)时间复杂度之中: 解题思路 对于我们list的列表来说,很容易实现O(1)的查询和插入,但是对于删除我们得找到相等的值才能删除,由于这个一个集合Set,我们可以通过实现一个哈希表记录索引来实现这么一种删除O(1)时间复杂度的方法。 代码 import random class RandomizedSet(object): def __...原创 2019-04-12 22:27:44 · 144 阅读 · 0 评论 -
18. 4Sum (多数求和的方案)
题目 大体思路 给出能得到的四位数字的sum=target的解法。 有所思路,相对来说,4个数字的和要比3个算法难一些,但是好在这个题目要求给出解题集合,而不需要计算一共可能的解法数。 就个人思路而言,大概是使用排列组合的方法计算出可能的集合,并加以逻辑筛选。 参考代码(可以用掉n个数的和的领域) 其核心是实现一个快速的2指针求解2个数的和,并通过递归将n和简化为2和。在知道列表已排序的情况下进...原创 2019-04-15 18:04:20 · 353 阅读 · 0 评论 -
211. Add and Search Word - Data structure design(难啊)
题目 一个简单的添加单词,返回查找是否存在的数据结构。 我的代码(超时) class WordDictionary: def __init__(self): """ Initialize your data structure here. """ self.words=set() def add...原创 2019-04-20 15:01:57 · 213 阅读 · 0 评论