zoukankan      html  css  js  c++  java
  • Leetcode#1-2

    #1 TowSum

    class Solution:
        def twoSum(self, nums, target):
            
            """
            :type nums: List[int]
            :type target: int
            :rtype: List[int]
            """
            j=len(nums)-1
            ind = []
            indv = []
            r,l = 0,0
            minn = min(nums)
            for n,v in enumerate(nums):
                if v+minn<=target:
                    ind.append(n)
                    indv.append(v)
            for i in ind:
                if target-nums[i] in indv:
                    indv.remove(nums[i])
                    ind.remove(i)
                    if target-nums[i] in indv:
                        l = i
                        x = indv.index(target-nums[i])
                        r = ind[x]
                        return [l,r]
            

       

      执行用时: 740 ms, 在Two Sum的Python3提交中击败了54.94% 的用户
      内存消耗: 7.4 MB, 在Two Sum的Python3提交中击败了79.99% 的用户
      自己想的是这个方法,看了答案后,发现一个很神奇的函数 map(),传入的参数是map(function,list),返回值是一个新的list
    #1 TowSum Answer
    class Solution:
        def twoSum(self, nums, target):
            """
            :type nums: List[int]
            :type target: int
            :rtype: List[int]
            """
            mirror = {}
            for idx, num in enumerate(nums):
                if num in mirror:
                    return [mirror[num], idx]
                mirror[target - num] = idx
    答案和我的思路是一样的,思维上更高阶,字典还不太熟练的运用.
     
    #2 addTwoNumbers
    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution:
        def addTwoNumbers(self, l1, l2):
            """
            :type l1: ListNode
            :type l2: ListNode
            :rtype: ListNode
            """
            b1 = l1
            b2 = l2
            b1l=[]
            b2l=[]
            r=[]
            while(b2):
                b2l.append(str(b2.val))
                b2 = b2.next
            while(b1):
                b1l.append(str(b1.val))
                b1 = b1.next
            n1 = eval(''.join(b1l[::-1]))
            n2 = eval(''.join(b2l[::-1]))
            ans = list(str(n1+n2))
            for i in range(len(ans)):
                r.append(eval(ans.pop(-1)))            
            return r
            
            
            
            
            

      

    执行用时: 232 ms, 在Add Two Numbers的Python3提交中击败了4.97% 的用户
    内存消耗: 6.7 MB, 在Add Two Numbers的Python3提交中击败了91.98% 的用户
    #2
    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution:
        def addTwoNumbers(self, l1, l2):
            """
            :type l1: ListNode
            :type l2: ListNode
            :rtype: ListNode
            """
    
            add = 0
            l3 = ListNode(0)
            node = l3
            while l1 or l2:
                cur = ListNode(add)
                if l1:
                    cur.val += l1.val
                    l1 = l1.next
                if l2:
                    cur.val += l2.val
                    l2 = l2.next
                add = cur.val // 10
                cur.val = cur.val % 10
                node.next, node = cur, cur
            if add:
                node.next = ListNode(add)
            
            return l3.next
     
      
  • 相关阅读:
    AtomicLong与LongAdder的区别
    记录Vmware Workstation及Centos6.8 的安装
    java.lang.NoSuchMethodError问题处理
    java读取UTF-8的txt文件发现开头的一个字符问题
    Java多线程之内存可见性和原子性:Synchronized和Volatile的比较
    关于怎么解决java.lang.NoClassDefFoundError错误
    使用SFTP工具相关问题
    resin中关于url rewrite来传递jsessionid的问题
    Linux常用命令
    Jenkins简单安装及配置(Windows环境)
  • 原文地址:https://www.cnblogs.com/zero27315/p/10429173.html
Copyright © 2011-2022 走看看