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 ...
随机推荐
- WebCrawler
WebCrawler WebCrawler is a metasearch engine that blends the top search results from Google Search a ...
- Ubuntu 16.04 install 搜狗输入法
1.#先添加以下源 sudo add-apt-repository ppa:fcitx-team/nightly 2.#添加源之后需要更新一下系统 sudo apt-get update 3.#开始安 ...
- EF 5 最佳实践白皮书
Performance Considerations for Entity Framework 5 By David Obando, Eric Dettinger and others Publish ...
- unity3d的GUI元素的界面坐标系统总结(有公式)
GUIText 和GUITexture 1.GUIText 锚点(Anchor)的概念我就不介绍了.像NGUI和tookit2d还有 Cocos2d中都有这个重要的概念,对于图片我们可以认为是图片自身 ...
- dock-compose 安装
apt-get install python-pip python-dev pip install -U docker-composechmod +x /usr/local/bin/docker-co ...
- [ZJOI2008]树的统计
本题是一个树链剖分裸题,由于比较菜,老是RE,后来发现是因为使用了全局变量. /************************************************************ ...
- 利用mask layer 勾View
#define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width #define SCREEN_HEIGHT [[UIScreen main ...
- win7 将所有 视图 改为 '详细信息'
1.随便进入某个文件夹->(菜单栏中)查看->选'详细信息' 2.(菜单栏中)工具->文件夹选项->查看->'应用到文件夹'
- python pip源
pipy国内镜像目前有: http://pypi.douban.com/ 豆瓣 http://pypi.hustunique.com/ 华中理工大学 http://pypi.sdutlinux.o ...
- html5 canvas画流程图
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...