首页 > 其他分享 >Study Plan For Algorithms - Part2

Study Plan For Algorithms - Part2

时间:2024-08-15 22:38:31浏览次数:15  
标签:max Study length char start Part2 dict Algorithms merged

1. 无重复字符的最长子串
题目链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters/
给定一个字符串 s ,请找出其中不含有重复字符的 最长 子串 的长度。

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        char_dict = {}
        max_length = 0
        start = 0

        for i, char in enumerate(s):
            if char in char_dict and char_dict[char] >= start:
                start = char_dict[char] + 1
            char_dict[char] = i
            max_length = max(max_length, i - start + 1)

        return max_length

2. 寻找两个正序数组的中位数
题目链接:https://leetcode.cn/problems/median-of-two-sorted-arrays/
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请找出并返回这两个正序数组的 中位数 。
算法的时间复杂度应该为 O(log (m+n)) 。

class Solution:
    def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
        merged = sorted(nums1 + nums2)
        n = len(merged)
        if n % 2 == 1:
            return merged[n // 2]
        else:
            return (merged[n // 2 - 1] + merged[n // 2]) / 2

标签:max,Study,length,char,start,Part2,dict,Algorithms,merged
From: https://www.cnblogs.com/stephenxiong001/p/18361937

相关文章