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 ...
随机推荐
- 第三方登录分享功能-ShareSDK for iOS适配问题记录
最近app里需要添加第三方授权登陆和分享的功能,选择了ShareSDK,参考了ShareSDK文档对该SDK进行了适配,但遇到了一些问题 1.问题:分享功能点击不跳转 原因:适配iOS9添加白名单 ...
- idea intellij 混淆anroid代码
idea intellij 混淆anroid代码 在project.properties中加入 target=android-14proguard.config=proguard.cfg 点击 Bui ...
- *HDU2510 DFS
符号三角形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- PHP写在线视频直播技术详解
2016年7月22日 22:26:45 交流QQ:903464207 本文会不断更新 废话一句,如果你要做高性能服务器服务,请去读底层的东西 http tcp/ip socket 了解基础协议,你对如 ...
- 使用github的使用,利用git shell命令行模式进行操作
一.登录到git,新建一个版本仓库 二.在"Repository name"一栏里填写版本仓库的名称,如"test",Description栏是描述,可填可不填 ...
- C#拾遗-边边角角
1.扩展方法 public static 方法返回值类型 扩展方法名(this 要扩展类型 obj,调用扩展方法时需要的参数){ return "返回值"} 2.运算符重载 pub ...
- selenium项目的实战经验
以前学习selenium,最接近项目的经验就是写了百度首页和自己开发的一个小网站的脚本,当时觉得差不多可以了.然而这次项目实战才发现还是学到不少知识,毕竟这个网站的专业程度远超过我自己写的,而且复杂程 ...
- 【Android测试】【第十九节】Espresso——API详解
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5997557.html 前言 Espresso的提供了不少A ...
- 浅析py-faster-rcnn中不同版本caffe的安装及其对应不同版本cudnn的解决方案
浅析py-faster-rcnn中不同版本caffe的安装及其对应不同版本cudnn的解决方案 本文是截止目前为止最强攻略,按照本文方法基本可以无压力应对caffe和Ross B. Girshick的 ...
- iOS 国际化(本地化)
转自http://www.cocoachina.com/industry/20140526/8554.html 简单说,国际化是一个应用程序国际兼容性设计的过程,比如: 1.以用户母语处理文本输入和输 ...