zoukankan      html  css  js  c++  java
  • LeetCode:1. 两数之和

    1、题目描述

      给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。

    你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

    示例:

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

    2、题解

    2.1、解法一:

    class Solution:
        def twoSum(self, nums, target):
            """
            :type nums: List[int]
            :type target: int
            :rtype: List[int]
            """
            dic={} 
            for i in range(len(nums)):            
    	        if nums[i] in dic:                
    		        return [dic[nums[i]],i]            
    	        else:                
    	            dic[target-nums[i]]=i#存储其补集位置
                
    
    
            
    

    2.2、解法二

    class Solution:
        def twoSum(self, nums, target):
            """
            :type nums: List[int]
            :type target: int
            :rtype: List[int]
            """
            list_len = len(nums)
            i = 0
            hashmap = dict()
            while i < list_len:
                hashmap[nums[i]] = i
                i = i + 1
    
            j = 0
            while j < list_len:
                temp = target - nums[j]
                if hashmap.get(temp) is not None and j != hashmap.get(temp):
                    return [j, hashmap.get(temp)]
                j = j + 1
    

      

      

  • 相关阅读:
    Java之事件处理
    Java之图形程序设计
    小议设置path环境变量
    关于JAVA中的编译和解释执行
    并发工具类 CountDownLatch
    线程池
    Properties的小问题
    转换流
    TCP中客户端和服务器的理解
    leetcode_160. 相交链表
  • 原文地址:https://www.cnblogs.com/bad-robot/p/10064208.html
Copyright © 2011-2022 走看看