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 ...
随机推荐
- Android 图标尺寸与设计
样例和图解 外框:整体大小 ↑ 边框:图标留白大小 ↓ 图标:外图标的大小 ↑ 阴影:阴影特效大小 ↓ 图形:内图标的大小 ↑ 可选视图权重:使用两种类型的图形尺寸可以达到统一的视觉权重(可选), ...
- Java直接(堆外)内存使用详解
本篇主要讲解如何使用直接内存(堆外内存),并按照下面的步骤进行说明: 相关背景-->读写操作-->关键属性-->读写实践-->扩展-->参考说明 希望对想使用直接内存的朋 ...
- C#的7个原则
C#的七个原则如下: 1.单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责. 2.开闭原则(Open-Closed Pri ...
- HTML基础篇之列表相关标签和特殊字符实体
HTML字符实体 常用的字符实体: 实体字符 字符实体 大于号 (>) > 小于号 (<) < 引号 (") " 注册商标(®) ® 版权(© ) © &a ...
- amCharts图表组件
amCharts提供了JavaScript/HTML5 Charts.Javascript/HTML5 Stock Chart.JavaScript Maps三种图表组件.amCharts图形效果炫丽 ...
- [转载] Ubuntu 16.04 LTS 一键安装VNC
安装 X11VNC: sudo apt install x11vnc -y 配置访问密码: sudo x11vnc -storepasswd /etc/x11vnc.pass 创建服务: vi /li ...
- Unity内存理解(转)
Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大. Resources.Load就是从一个缺省打进程序包里的AssetBu ...
- 更换Mac记录
1. 重装Mac (1)格式化硬盘 (2)重装系统 (3)修改各种配置:电脑名.键盘等 2. 安装必要软件 (1)QQ.微信.网易云音乐等 (2)火狐.谷歌.SourceTree等 (3)安装Git ...
- JS学习总结(新手)
1. JS面向对象 http://www.cnblogs.com/JavascriptDream/p/5064976.html a. Prototype 属性的理解 b. 遗传继承函数 functio ...
- selenium python的使用(一)
下面是一个爬取知网数据的例子,使用selenium 用python爬取数据 1.创建对象,打开指定地址,在休眠的20秒内输入搜索项 driver= webdriver.Chrome() driver. ...