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 · 177 阅读 · 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 · 158 阅读 · 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 = Noneclass Solut...原创 2019-04-20 00:02:29 · 94 阅读 · 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 · 72 阅读 · 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 · 94 阅读 · 0 评论 -
721. Accounts Merge
题目就是说给出一系列人物的名字和邮箱,里面的人可能重名,但要将列表合并,将同人物的邮箱合并起来。思路及代码第一步,我们先假定有以下的列表:[["John", "[email protected]", "[email protected]"], # Account 0["John", "[email protected]"], # Account 1["John", "johnsm...原创 2019-04-18 12:29:46 · 202 阅读 · 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 · 95 阅读 · 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 · 100 阅读 · 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 = Noneclass Solut...原创 2019-04-21 15:51:54 · 121 阅读 · 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 · 144 阅读 · 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 · 187 阅读 · 0 评论 -
870. Advantage Shuffle
题目这道题颇有田忌赛马的意思,尽可能让我们的4匹马赢过对面4匹马。总的思路来说,尽可能找最大的和对面最大的比,如果胜,这派最大的出战,如果败,则将最弱的迎战对面对强,即可。代码(排序)代码总体来说比较简单。class Solution: def advantageCount(self, A, B): A = sorted(A) ...原创 2019-04-20 20:32:56 · 155 阅读 · 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 · 172 阅读 · 0 评论 -
779. K-th Symbol in Grammar
题目大概的意思就是形成一个N层的序列,就像001011001101001我们可以发现前半部分它们完全相同,后半部分是前半部分求反的结果。但碍于对于位运算的不理解,并没有得出代码,于是查看讨论区。高效代码class Solution(object): def kthGrammar(self, N, K): """ :type N: int...原创 2019-04-13 13:12:38 · 172 阅读 · 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 · 112 阅读 · 0 评论 -
147. Insertion Sort List
题目对一个链表插入排序。使用了简单的指针方法。我的代码(效率太低没办法通过)# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: de...原创 2019-04-13 01:43:43 · 113 阅读 · 0 评论 -
380. Insert Delete GetRandom O(1)
题目设计一个数据结构可以支持以下的操作在O(1)时间复杂度之中:解题思路对于我们list的列表来说,很容易实现O(1)的查询和插入,但是对于删除我们得找到相等的值才能删除,由于这个一个集合Set,我们可以通过实现一个哈希表记录索引来实现这么一种删除O(1)时间复杂度的方法。代码import randomclass RandomizedSet(object): def __...原创 2019-04-12 22:27:44 · 108 阅读 · 0 评论 -
18. 4Sum (多数求和的方案)
题目大体思路给出能得到的四位数字的sum=target的解法。有所思路,相对来说,4个数字的和要比3个算法难一些,但是好在这个题目要求给出解题集合,而不需要计算一共可能的解法数。就个人思路而言,大概是使用排列组合的方法计算出可能的集合,并加以逻辑筛选。参考代码(可以用掉n个数的和的领域)其核心是实现一个快速的2指针求解2个数的和,并通过递归将n和简化为2和。在知道列表已排序的情况下进...原创 2019-04-15 18:04:20 · 290 阅读 · 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 · 160 阅读 · 0 评论