博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode:1-5题代码整理
阅读量:7238 次
发布时间:2019-06-29

本文共 5562 字,大约阅读时间需要 18 分钟。

以下是这段时间抽时间刷的前5题,都是自己想的解法,或许不是最优解,只是整理下,方便日后优化提升

1. Two Sum:

class Solution:    # @return a tuple, (index1, index2)    def twoSum(self, num, target):        dict = {}        for i in xrange(len(num)):            if dict.get(target-num[i], None) == None:                dict[num[i]] = i            else:                return (dict[target-num[i]] , i )

2. Add Two Numbers:

class Solution(object):    def addTwoNumbers(self, l1, l2):        """        :type l1: ListNode        :type l2: ListNode        :rtype: ListNode        """        more=0        l3=ListNode(0)                l3.val=l1.val+l2.val+more        if l3.val>=10:            more=1        else:            more=0        l3.val=l3.val%10        l1_temp=l3        l1=l1.next        l2=l2.next                while(l1 and l2):            temp=ListNode(0)            temp.val=l1.val+l2.val+more            if temp.val>=10:                more=1            else:                more=0            temp.val=temp.val%10                        l1_temp.next=temp            l1_temp=temp            l1=l1.next            l2=l2.next                if((l1 is None )and( l2 is None)):            if more==1:                temp=ListNode(0)                temp.val=1                l1_temp.next=temp            return l3                    elif(l1 and ( l2 is None)):            while(l1):                temp=ListNode(0)                temp.val=more+l1.val                if temp.val>=10:                    more=1                else:                    more=0                temp.val=temp.val%10                l1_temp.next=temp                l1_temp=temp                l1=l1.next            if more==1:                temp=ListNode(0)                temp.val=1                l1_temp.next=temp            return l3                elif(l2 and ( l1 is None)):            while(l2):                temp=ListNode(0)                temp.val=more+l2.val                if temp.val>=10:                    more=1                else:                    more=0                temp.val=temp.val%10                l1_temp.next=temp                l1_temp=temp                l2=l2.next            if more==1:                temp=ListNode(0)                temp.val=1                l1_temp.next=temp            return l3

3. Longest Substring Without Repeating Characters:

class Solution(object):    def lengthOfLongestSubstring(self, s):        """        :type s: str        :rtype: int        """        new_str = ''        max = 0        for ch in s:            if not ch in new_str:                new_str += ch            else:                max = len(new_str) if len(new_str) > max else max                idx = new_str.find(ch)                new_str = new_str[idx+1:] + ch        max = len(new_str) if len(new_str) > max else max        return max

4. Median of Two Sorted Arrays:

class Solution(object):    def findMedianSortedArrays(self, nums1, nums2):        """        :type nums1: List[int]        :type nums2: List[int]        :rtype: float        """        end1=len(nums1)-1        end2=len(nums2)-1        if len(nums1)==0:            num=len(nums2)            if num%2:     #num是一个奇数                return float(nums2[num/2])            else:                median=num/2                return (float(nums2[median-1])+nums2[median])/2                    elif len(nums2)==0:            num=len(nums1)            if num%2:     #num是一个奇数                median=num/2                return float(nums1[median])            else:                median=num/2                return (float(nums1[median-1])+nums1[median])/2                        elif nums1[end1]
nums2[end2]: nums2.extend(nums1) num=len(nums2) if num%2: #num是一个奇数 return float(nums2[num/2]) else: median=num/2 return (float(nums2[median-1])+nums2[median])/2 else: i=0 j=0 new=[] while i

5. Longest Palindromic Substring:

class Solution(object):        def longestPalindrome(self, s):        """        :type s: str        :rtype: str        """        if len(s)==1:            return s        elif len(s)==2 and s[0]==s[1]:            return s        else:            s_fin1=""            s_fin2=""                        index_l=0            index_r=1            max_length=0            left=-1            right=-1            flag=0            while index_r
=0 and index_r+i
max_length: max_length=length left=index_l right=index_r index_l=index_l+1 index_r=index_r+1 if max_length: begin=left-max_length/2+1 end=right+max_length/2 flag=2 s_fin1=s[begin:end] index=1 max_length=1 center=-1 flag=0 while index<(len(s)-1): i=1 length=1 while index-i>=0 and index+i
max_length: max_length=length center=index index=index+1 if max_length>1: begin=center-(max_length-1)/2 end=center+(max_length-1)/2+1 flag=1 s_fin2=s[begin:end] if len(s_fin1)>len(s_fin2): return s_fin1 else: return s_fin2

 

转载于:https://www.cnblogs.com/soulmate1023/p/5866759.html

你可能感兴趣的文章
大数据算法摘录
查看>>
有序线性表合并
查看>>
IIC,AT24C02
查看>>
java 反射机制
查看>>
HDOJ 1002 大数加法
查看>>
HDU 1150 Machine Schedule(最小点覆盖)
查看>>
介绍自己
查看>>
双线性插值算法进行图像缩放及性能效果优化
查看>>
[Usaco2007 Dec]宝石手镯
查看>>
runtime消息转发机制
查看>>
告诉系统已经在环境变量
查看>>
城市选择
查看>>
在ECSHOP后台自定义价格区间,让价格区间更人性化
查看>>
不得不知道的Python字符串编码相关的知识
查看>>
熬了2个通宵,终于做了一个高效的分页查询控件
查看>>
Best Coder #86 1002 NanoApe Loves Sequence
查看>>
zipalign的使用
查看>>
ide-helper
查看>>
大数据(7) - zookeeper的安装与使用
查看>>
利用Solr服务建立的站内搜索雏形---solr1
查看>>