zoukankan      html  css  js  c++  java
  • 两数之和&无重复字符最长字符串

    一、两数之和

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

    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    思路:用字典模拟哈希表查找

    def twoSum(nums, target):
        hashmap={}
        for ind,num in enumerate(nums):
            hashmap[num] = ind
        for i,num in enumerate(nums):
            j = hashmap.get(target - num)
            if j is not None and i!=j:
                return [i,j]

    二、无重复字符的最长子串

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

    def lengthOfLongestSubstring(s):
        if s == '':
            return 0
        if len(s) == 1:
            return 1
    
        def find_left(s, i):
            tmp_str = s[i]
            j = i-1
            while j>=0 and s[j] not in tmp_str:
                tmp_str += s[j]
                j -= 1
            return len(tmp_str)
        length = 0
        for i in range(0, len(s)):
            length = max(length, find_left(s, i))
        return length
  • 相关阅读:
    深度学习(十六) ReLU为什么比Sigmoid效果好
    逻辑回归和线性回归区别
    KNN理解
    词向量总结
    HTTP TCP/IP Socket
    AutoMapper控件
    Oracle数据库调优总结
    深度学习(十五) TextCNN理解
    从几张图来看看越来越难做的前端
    ES6学习笔记
  • 原文地址:https://www.cnblogs.com/sunny0824/p/13747138.html
Copyright © 2011-2022 走看看