leetcode11
来源:互联网 发布:ubuntu ssh 安装 编辑:程序博客网 时间:2024/06/08 04:48
Wildcard Matching
看的大神的答案。当p[pPointer] == ‘?’ or p[pPointer] == s[sPointer]的时候,两个指针都向后移一位,当p[pPointer] == ‘*’的时候,用star记录下p当前的位置,pPointer向后移,ss记录s当前的位置,如果上面的条件都不满足了,看star是不是-1,不是的话,把pPointer拉回到star的下一个,ss加一,这里是看*能匹配多少。
比如s=’abcabab’,p=’a*ab’,star=1,当pPointer==4的时候,p[pPointer]!=s[sPointer],所以pPointer又被拉回了2,sPointer被拉回了4,因为ss要先加1。
class Solution: # @param s, an input string # @param p, a pattern string # @return a boolean def isMatch(self, s, p): len_s = len(s); len_p = len(p) pPointer = sPointer = ss = 0 star = -1 while sPointer < len_s: if pPointer < len_p and (p[pPointer] == '?' or p[pPointer] == s[sPointer]): sPointer += 1; pPointer += 1; continue if pPointer < len_p and p[pPointer] == '*': star = pPointer; pPointer +=1; ss = sPointer continue if star != -1: pPointer = star + 1; ss += 1; sPointer = ss continue return False while pPointer < len_p and p[pPointer] == '*': pPointer += 1 return pPointer == len_p
Jump Game II
太可怕了,这方法。。。什么时候我才能自己想出来。
对于每次lastReach < i 时,说明跳上一次不到i,需要cnt++
class Solution(object): def jump(self, nums): """ :type nums: List[int] :rtype: int """ curReach=0 #当前能跳到的最远距离 lastReach=0 #上次最远可以跳到的距离 count=0 n=len(nums) for i in range(n): if lastReach<i: lastReach=curReach count+=1 curReach=max(curReach,nums[i]+i) print i,lastReach,curReach return count
Maximum Subarray
。。。这么简单的都做了这么久
#coding=utf-8class Solution(object): def maxSubArray(self, nums): """ :type nums: List[int] :rtype: int """ res=[] res.append(nums[0]) for i in range(1,len(nums)): if res[i-1]+nums[i]<nums[i]: res.append(nums[i]) else: res.append(res[i-1]+nums[i]) return max(res)
Permutations
每次拿出一个数,剩下的数递归
#coding=utf-8class Solution(object): def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ if len(nums)==0: return [] if len(nums)==1: return [nums] res=[] for i in range(len(nums)): for j in self.permute(nums[:i]+nums[i+1:]): res.append([nums[i]]+j) return res
阅读全文
1 0
- leetcode11
- leetcode11.ContainerWithMostWater
- Leetcode11: Remove Element
- Leetcode11 Pow(x,n)
- Leetcode11(Java)
- Leetcode11: Container with most water
- leetcode11.Linked List Cycle II
- [LeetCode11]Container With Most Water
- Binary Tree Inorder Traversal leetCode11
- LeetCode11:Container With Most Water
- leetcode11 Container With Most Water
- leetcode11 Container With Most Water
- LeetCode11:Container With Most Water
- Leetcode11 Container With Most Water
- leetcode11:Container With Most Water
- LeetCode11: Container With Most Water
- leetcode11. Container With Most Water
- leetcode11. Container With Most Water
- #java学习之序列化
- vim taglist
- import cv2 失败 ImportError:DLL load fail:找不到指定模块
- Spring
- Codeforces Round #426(Div.2)D题 DP+线段树
- leetcode11
- LabVIEW视觉里一些算子参数解释
- 文章标题
- android,java知识点总结(一)
- codeforces 834C (The Meaningless Game)
- 小端格式和大端格式(Little-Endian&Big-Endian)
- 【Java并发编程】线程池
- WM基本功能
- NYOJ 236 心急的C小加