leetcode:1-5题代码整理
以下是这段时间抽时间刷的前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[0]:
nums1.extend(nums2)
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[0]>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<len(nums1) and j<len(nums2):
if nums1[i]<nums2[j]:
new.append(nums1[i])
i=i+1
elif nums1[i]==nums2[j]:
new.append(nums1[i])
new.append(nums1[i])
i=i+1
j=j+1
else:
new.append(nums2[j])
j=j+1
while i<len(nums1):
new.append(nums1[i])
i=i+1
while j<len(nums2):
new.append(nums2[j])
j=j+1
num=len(new)
if num%2: #num是一个奇数
return float(new[num/2])
else:
median=num/2
return (float(new[median-1])+new[median])/2
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<len(s):
i=0
length=0
while index_l-i>=0 and index_r+i<len(s) and s[index_l-i]==s[index_r+i]:
i=i+1
length=length+2
if length>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<len(s) and s[index-i]==s[index+i]:
i=i+1
length=length+2
if length>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
leetcode:1-5题代码整理的更多相关文章
- leetcode 第188题,我的解法,Best Time to Buy and Sell Stock IV
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...
- LeetCode第[18]题(Java):4Sum 标签:Array
题目难度:Medium 题目: Given an array S of n integers, are there elements a, b, c, and d in S such that a + ...
- LeetCode的刷题利器(伪装到老板都无法diss你没有工作)
在工程效率大行其道的今天,如果不会写点代码以后也不容易在测试圈混下去.今天给大家推荐一个LeetCode的刷题利器,可以伪装到连你老板在这里走过去都无法确认你是在干活呢,还是在干活呢. LeetCod ...
- LeetCode每天一题之两数之和
这个LeetCode刷题系列的博客权当是为自己记一下笔记吧.博客系列会从LeetCode的第一题开始刷,同时会从零开始学习[因为我就是零/(ㄒoㄒ)/~~].同时,如果有写错的地方,希望大佬们在评论区 ...
- LeetCode 第 342 题(Power of Four)
LeetCode 第 342 题(Power of Four) Given an integer (signed 32 bits), write a function to check whether ...
- leetcode 入门第一题 4ms? 8ms? Two Sum
今天开启leetcode 入门第一题 题意很简单,就是一个数组中求取两数之和等于目标数的一对儿下标 1.暴力 n^2 两个for循环遍历 用时0.1s 开外 代码就不用写了 2.二分 nlogn 我们 ...
- LeetCode第[46]题(Java):Permutations(求所有全排列) 含扩展——第[47]题Permutations 2
题目:求所有全排列 难度:Medium 题目内容: Given a collection of distinct integers, return all possible permutations. ...
- LeetCode 第 342 题(Power of Four)
LeetCode 第 342 题(Power of Four) Given an integer (signed 32 bits), write a function to check whether ...
- LeetCode 第 3 题(Longest Substring Without Repeating Characters)
LeetCode 第 3 题(Longest Substring Without Repeating Characters) Given a string, find the length of th ...
随机推荐
- 两个多项式相加 ( C++ )
实现两个多项式进行相加 不开辟空间 ( 这要求实现进行相加,代价为两个原链表将被修改) 分析: this>other 就把other当前结点放置在this之前 this<other 就th ...
- table常用功能总结
1,设置表格边框为单线框 table, th, td { border: 1px solid blue; }加上:table { border-collapse:collapse; } 由于 tabl ...
- Python标准异常topic
Python标准异常topic AssertionError 断言语句 (assert) ...
- *HDU2510 DFS
符号三角形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- SQL模仿Split 功能
--方法0:动态SQL法 declare @s varchar(100),@sql varchar(1000) set @s='1,2,3,4,5,6,7,8,9,10' set @sql='sele ...
- 2016.10.14,英语,《American Accent Training》
这本书是讲述美语发音训练的.已经看了一段时间了,决定向周叶学习,记录读书笔记.计划每天花半个小时,学习3节左右的音频(按照CD TRACK),并完成训练. CD1 Track1 What is Acc ...
- centos6.5新增加硬盘挂载并实现开机时自动挂载
在内网主机新增一个2T硬盘,先关机断电再连接硬盘数据线和电源线! 查看当前磁盘设备信息: [root@tb ~]# fdisk -lWARNING: GPT (GUID Partition Table ...
- 转:Egret社区翻译的《TypeScript语言手册》
<TyptScript语言手册>第1章-介绍<TypeScript语言手册>第2章-基本概念<TypeScript语言手册>第3章-类型<TypeScri ...
- words
conscious[英][ˈkɒnʃəs][美][ˈkɑnʃəs]consensus[英][kənˈsensəs][美][kənˈsɛnsəs] scious sensuswaterflood; de ...
- ansible 安装
1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署. ...