leetcode
山间wu
cv领域从业工程师。
展开
-
【leetcode】53.Maximum Subarray
题目找到数组中具有最大和的连续序列,并输出这个序列。思路定义一个maxsum存储最大序列和,定义一个thissum存储当前序列和。thissum小于0时,令其等于0.maxsum=max(maxsum,thissum)代码如下class Solution: def maxSubArray(self, nums): """ :type nums:...原创 2018-10-18 09:00:08 · 72 阅读 · 0 评论 -
【leetcode】169.majority element
此题有多种解法,具体可以查看coder_orz的博客,链接: https://blog.csdn.net/coder_orz/article/details/51407713题目描述Given an array of size n, find the majority element. The majority element is the element that appears more...原创 2018-10-23 09:44:51 · 87 阅读 · 0 评论 -
【leetcode】167.Two Sum II
题目描述Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.给定一个升序排列的序列,找到相加等于一个确定目标值的两个数字,并返回它们在序列中的位置。思路这道题我们可以采用...原创 2018-10-28 21:06:45 · 118 阅读 · 0 评论 -
【leetcode】121.Best Time to Buy and Sell Stock
题目描述求出最大利润。思路直观的理解,就是求数组中最大值和最小值的差,其中最大值排在最小值之后。首先想的是,用二重循环来求,但是这样做会超时。所以考虑另外一种思路:设置两个参数,最小价格和最大利润。最小价格会不断改变,而最大利润=当前值-最小价格,也会随着p的改变而改变。代码class Solution: def maxProfit(self, prices): ...原创 2018-10-21 20:19:04 · 54 阅读 · 0 评论 -
【leetcode】125.Valid Palindrome
题目翻译给定一串字符串,只考虑数字和字母,并且字母不区分大小写,则判定这个字符串是回文字符串。思路这里用到了alnum:判断是不是字母,lower:将大写字母转化为小写字母。判断是否是回文字符串的方法:判断字符串的第i个字母和第length-i-1个字母是否相等。代码class Solution: def isPalindrome(self, s): """...原创 2018-10-21 21:31:12 · 93 阅读 · 0 评论 -
【leetcode】74.Search a 2D Martrix(二分查找法)
题目描述在一个行有序列有序的矩阵中,寻找某一个值,如果该值存在,返回True,如果不存在,返回False。思路先对每行的第一个元素进行二分查找,确定该值所在的列。再在该列中进行第二次二分查找,确定该值是否存在。代码class Solution: def searchMatrix(self, matrix, target): """ :type m...原创 2018-10-23 17:15:29 · 160 阅读 · 0 评论 -
【leetcode】81.Search in rotated sorted array II
题目描述Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.假定一个有序的序列,它会在某个不确定的位置上翻转。试确定某个元素是否存在于这个序列中。思路采用二分法。由于数组中存在重复的元素,存在mid与right的值相等的情况。在这种情况下,将left的...原创 2018-10-23 22:36:43 · 118 阅读 · 0 评论 -
【leetcode】231.Power of Two
题目描述求n是否是2的n次方。思路使用位运算。假如n是2的n次方,则n&n-1一定等于0.代码class Solution: def isPowerOfTwo(self, n): """ :type n: int :rtype: bool """ return n > 0 and no...原创 2018-10-31 09:42:53 · 80 阅读 · 0 评论 -
【leetcode】144.binary tree preorder
题目翻译Given a binary tree, return the preorder traversal of its nodes’ values.给定一个二叉树,求它的前序遍历序列。思路一递归。代码class Solution: def preorderTraversal(self, root): """ :type root: TreeN...原创 2018-10-26 16:00:37 · 134 阅读 · 0 评论 -
【leetcode】96.Unique Binary Search Trees(In )
题目翻译Given n, how many structurally unique BST’s (binary search trees) that store values 1 … n?给定n,则含有n个数的二叉搜索树一共有多少个?思路这是一个动态规划问题,思路是确定递归量,求出递归式然后代入初始条件。可以看出该数列是卡塔兰数数列。从处理子问题的角度来看,选取一个结点为根,就把结点切成...原创 2018-10-24 11:08:39 · 109 阅读 · 0 评论 -
【leetcode】91.Decode Ways
题目描述A message containing letters from A-Z is being encoded to numbers using the following mapping:给定一条非空的只包含数字的序列,计算其一共有多少种编码方式。思路本题宜用动态规划:共有三种情况:l s[i-2]和s[i-1] 两个字符是10----26之间但不包括10和20这两个数时,有...原创 2018-10-24 16:04:28 · 123 阅读 · 0 评论 -
【leetcode】204.Count Primes(python)
题目描述Count the number of prime numbers less than a non-negative number, n.计算比一个非负数n小的所有质数的个数。思路采用厄尔多塞筛法。代码class Solution: def countPrimes(self, n): """ :type n: int :r...原创 2018-10-30 15:13:44 · 299 阅读 · 0 评论 -
【leetcode】290.Word Pattern
题目描述Given a pattern and a string str, find if str follows the same pattern.给定一个模式(pattern)和一个字符串(str),判断该字符串是否符合该模式。非常规思路用split函数将str中的单词划分为words数组,比较words和pattern中不同元素的种类数是否相等。再将words和pattern写成映射...原创 2018-10-30 16:09:16 · 145 阅读 · 0 评论 -
【leetcode】27.Remove Element (python)
题目描述Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.给定一个有序数组,直接在数组中删除重复的元素,返回新数组及其长度。思路设定两个指针,一个i:指向原数组,一个cur:指向新数组。初始状...原创 2018-10-28 15:22:43 · 130 阅读 · 0 评论 -
【leetcode】【数论】258.Add Digit (python)
题目描述Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.给定一个非负整数,重复将其每位数相加,直到结果只有一位数为止。思路一采用最简单的循环计算方法,但是这样不符合题目要求。class Solution: def addDigit...原创 2018-10-28 11:15:43 · 168 阅读 · 0 评论 -
【leetcode】168.Excel Sheet Column Title
题目翻译Given a positive integer, return its corresponding column title as appear in an Excel sheet.给定一个正整数,返回其在一个excel列表中作为列序号时对应的列标题。思路用处理进制转换的一般思路,重复取模和除法即可。但是注意由于A对应1,所以Z之后是AA,这个转换不同于一般的进制转换。chr(...原创 2018-10-22 22:14:20 · 96 阅读 · 0 评论 -
【leetcode】605.Can Place Flowers (in python)
题目描述在花坛中种花,两株花不能种在相邻的位置上。给定一个已有的花坛序列,判断还可以种几株花。解题思路三个一组来讨论。正常思路都应该这样!遍历flowerbed,如果f[i]等于0,i0或者f[i-1]等于0,if.size-1或者f[i+1]==0,即这三个条件同时满足,说明可以种花,则f[i]==1,为了下一个条件判断准备,然后n–。当遍历结束后,如果n<=0,即花种完了,则返回t...原创 2018-10-18 09:44:09 · 294 阅读 · 0 评论 -
【leetcode】238.Product of Array Except Self
题目描述给定一个包含n个数字的数组nums,n>1,返回一个数组output,其中output[i]的内容为除了nums[i]以外的nums中其他所有元素的乘积,要求不使用除号,且时间复杂度为O(n)。思路由于不能使用除号,所以必须只有乘号来计算。维护两个数组dp1和dp2,分别用来保存第i个位置之前所有数的乘积和第i个位置之后所有数的乘积。代码class Solution: ...转载 2018-10-18 10:41:24 · 85 阅读 · 0 评论 -
【leetcode】66.Plus One
题目描述给定一个数组表示的非负数,对这个数加一。思路对数组从后往前扫描,如果最后一位加一后产生了进位,则对进位处理:1、如果i的序号不是0,则i-1位加一2、如果i的序号是0,则在第0 位插入一个1最后返回修改后的数组代码class Solution: def plusOne(self, digits): """ :type digits: ...原创 2018-10-18 14:14:47 · 95 阅读 · 0 评论 -
【leetcode】70.Climbing Stairs
题目描述从一个有序链表中,删除重复的元素,使每个元素只出现一次。解题思路比较p的值和p的next的值,如果想等,令p.next == p.next.next,否则,令p=p.next代码# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val...原创 2018-10-18 19:50:00 · 75 阅读 · 0 评论 -
【题686】
题目描述:有两个字符串A和B,求A重复几次时,B是A的一部分。结题思路:当B not in A时,就让A+=A(注意这里用A的浅拷贝,只要加上A最初的值就行)count+=1如果A的长度或者B的长度大于10000,还没找到B,说明B是无法成为A中的子集了,返回-1代码:class Solution: def repeatedStringMatch(self, A, B):...原创 2018-10-16 19:59:09 · 102 阅读 · 0 评论 -
【leetcode】104.Maximum Depth of Binary Tree
题目描述求一颗二叉树的最大深度。思路一递归求解,深度优先算法(DFS)分别求根节点的左子树和右子树的深度,然后取最大值。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None#...原创 2018-10-19 14:37:46 · 83 阅读 · 0 评论 -
【leetcode】112.Path Sum
题目描述判断一棵树中有没有一条路径,其和等于给定值。思路用深度优先搜索(DFS)遍历树的所有结点的值,要注意每深一层要从中减去相应节点的值。代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.l...原创 2018-10-19 16:46:26 · 76 阅读 · 0 评论 -
【leetcode】804.Unique Morse Code Words
题目描述International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: “a” maps to “.-”, “b” maps to “-…”, “c” maps to “-.-.”, and so on.For...原创 2018-10-10 20:57:18 · 97 阅读 · 0 评论 -
【leetcode】14.Longest Common Prefix(in python)
题目描述找出一系列字符串中的公共字符串。解题思路1、如果只有一个字符串,返回该字符串2、求出最小字符串的长度,因为公共字符串的长度肯定小于最小字符串的长度。代码 if not strs: return ""#如果不是字符串,返回none if len(strs) == 1: return strs[0]#如果...原创 2018-10-17 15:54:11 · 173 阅读 · 0 评论 -
【leetcode】快慢指针 (in python)
快慢指针法。定义两个指针:慢指针每次走一步快指针每次走两步。依次循环下去,如果链表存在环,那么快慢指针一定会有相等的时候。为了便于理解,你可以想象在操场跑步的两个人,一个快一个慢,那么他们一定会相遇(无论他们的起始点是不是在操场)。【题141】题目描述判断一个链表序列是否存在环。代码 slow = fast = head while fast and f...原创 2018-10-22 14:24:13 · 1720 阅读 · 0 评论 -
【leetcode】155.Min Stack
题目描述构建一个栈,并且定义它的功能:push、pop、getMin和top思路第一次提交答案时,出现了time limit的情况。分析原因:如果getMin用遍历的方法,时间复杂度为O(n),不满足题目要求。解决方法:定义两个栈,另外一个栈存放当前元素的最小值,这样在牺牲空间的前提下,能够降低时间复杂度。代码见https://shenjie1993.gitbooks.io/lee...原创 2018-10-22 15:54:09 · 84 阅读 · 0 评论 -
【leetcode】35.Search Insert Position
题目描述给定一个字符串和一个数字,查找这个数字在字符串中的位置或者插入位置。方法一循环遍历class Solution: def searchInsert(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int ...原创 2018-10-17 20:40:16 · 69 阅读 · 0 评论 -
【leetcode】171.Excel Sheet Column Number
题目描述Given a column title as appear in an Excel sheet, return its corresponding column number.给定在一个Excel表格中出现的列标题,求其对应的列数字。思路一class Solution: def titleToNumber(self, s): """ :ty...原创 2018-10-27 21:47:42 · 126 阅读 · 0 评论