leetcode-双指针

209 :
给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

class Solution(object):
    def minSubArrayLen(self, target, nums):
        """
        :type target: int
        :type nums: List[int]
        :rtype: int
        """
        if not nums:
            return 0

        start=0
        end=0
        ans = len(nums) + 1
        s=0
        while end= target:
                ans=min(ans , end-start+1 )
                s-=nums[start]
                start=start+1
            end=end+1
        
        return 0 if ans == len(nums) + 1 else ans


    


3
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        ans,rk=0,0
        s1=set()
        n=len(s)
        if s=="":
            return 0
        
        if s==" ":
            return 1

        for i in range(n) :
            if i!= 0 :
                s1.remove(s[i-1])

            while rk < len(s) and s[rk] not in s1:
                s1.add(s[rk] ) 
                rk = rk + 1
            ans = max ( ans,len(s1) ) 
            
        return max ( ans,len(s1) ) 
            


你可能感兴趣的:(leetcode-双指针)