• leetcode 全解(python版)


    本着blabla的精神,在这里(可能会)给出leetcode的全部习题答案 --持续更新中...

    1.给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

       ps:这个好简单,好容易理解aaa,,BUT是个反例,,执行用时超过限制...

    class Solution:
        def twoSum(self, nums: List[int], target: int) -> List[int]:
            l = len(nums)
            for i in range(l):
                for j in range(l):
                    if nums[i] + nums[j] == target and (not i == j):
                        return (i,j)

       下面系正确且耗时非常OK的解法

    class Solution:
        def twoSum(self, nums: List[int], target: int) -> List[int]:
            n = len(nums)
            lookup = {}
            for i in range(n):
                tmp = target - nums[i]
                if tmp in lookup:
                    return [lookup[tmp], i]
                lookup[nums[i]] = i

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

        ps1:明明直接len(l)就已经解决了的,非要把l打印出来看着,用什么left,right来计算最长子串长度,折腾了一天也没计算明白,len(l)出来结果那一瞬间哭辽

        ps2:内存消耗太大,等待修正中...

    class Solution:
        def lengthOfLongestSubstring(self, s: str) -> int:
            l = []  # 记录遍历过的字符
            count = 0  # 记录每一个无重复字符的字串的长度
            max_num = 0  # 记录所有子串最长长度
    
            if len(s) == 0:
                return 0
            if len(s) == 1:
                return 1
    
            for c in s:
                if c not in l:
                    l.append(c)
                    count = len(l)
    
                else:
                    if l.index(c) == len(l): #如果是重复的字符为列表中最后一个,例如abcc
                        l = [].append(c)
                    l = l[l.index(c) + 1 :]
                    l.append(c)
    
                if count >= max_num:
                    max_num = count
    
            return max_num
  • 相关阅读:
    OpenNebula Restfull 接口请求示例
    [c++]堆和栈的区别
    [c++]程序的内存划分理解
    设计原则 依赖倒置
    设计原则 里氏替换原则
    设计原则:单一职责原则
    WPF 使用附加属性增加控件属性
    WPF 使用依赖属性自定义控件
    WPF EventAggregator(基于EventAggregator的事件发布及订阅)
    Struts2 Validate
  • 原文地址:https://www.cnblogs.com/cxl-blog/p/10358125.html
Copyright © 2020-2023  润新知