
算法练习
陈路飞
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
17--leetcode--python
1.给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。思路:要做两个数组,遍历上一轮...原创 2019-04-08 22:50:44 · 283 阅读 · 0 评论 -
19--leetcode--python
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。思路,最有效:双指针,前面i走n,然后j从头,i接着走到尾巴,j到倒数n !!!!class Solution(o...原创 2019-04-10 00:46:03 · 337 阅读 · 0 评论 -
12--leetcode--数字转罗马数字
罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000 相当于如下哈希表d = {1000:'...原创 2019-08-03 15:21:09 · 158 阅读 · 0 评论 -
14--leetcode--最大公共子串
找到最短的字符串已list[0]为标准,遍历list,加单个字符串右指针,不同即已到最长公共字串,返回class Solution(object): def longestCommonPrefix(self, strs): if not strs: return "" if len(strs) == 1:...原创 2019-08-03 16:09:42 · 292 阅读 · 0 评论 -
20--leetcode--括号是否匹配
利用堆。class Solution: def isValid(self, s): stack = [] lookup = { "(":")", "[":"]", "{":"}" } for i in s: i...原创 2019-08-05 17:21:05 · 229 阅读 · 0 评论 -
13--leetcode
罗马数字转整数class Solution(object): def romanToInt(self, s): d = {'I':1, 'IV':4, 'V':5, 'IX':9, 'X':10, 'XL':40, 'L':50, 'XC':90, 'C':100, 'CD':400, 'D':500,'CM':900, 'M':1000} i=0...原创 2019-08-02 11:35:58 · 120 阅读 · 0 评论 -
21--leetcode--合并两个有序列表
# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def mergeTwoLists(self, l1, l...原创 2019-08-14 10:45:35 · 157 阅读 · 0 评论 -
22--leetcode--括号生成
给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]class Solution(object): def generateParenthesis(self, n):...原创 2019-08-14 15:16:25 · 140 阅读 · 0 评论 -
24--leetcode--俩俩交换链表中的结点
# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def swapPairs(self, head): ...原创 2019-08-14 17:34:17 · 170 阅读 · 0 评论 -
22--leetcode--python
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]class Solution(object): def generateParenthesis(self, N): ...原创 2019-04-11 22:13:28 · 292 阅读 · 0 评论 -
11--leetcode--python
一.给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表...原创 2019-03-11 23:53:58 · 232 阅读 · 0 评论 -
手写IoU及非极大值抑制
面试的时候让手写IOU和非极大值抑制,虽然集体原理挺了解的,但是没有手写过这种应用函数,IoU还好,非极大值写个磕磕绊绊,写了个伪代码加口述混了过去。回来总结下def IOU(x1,y1,X1,Y1, x2,y2,X2,Y2): xx = max(x1,x2) XX = min(X1,X2) yy = max(y1,y2) YY = min(Y1,Y2...原创 2019-03-07 16:26:41 · 898 阅读 · 0 评论 -
3--LeetCode--python
一.给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。思路:暴力算法两个for,时间复杂度O(n2)。所以采用哈希表将时间复杂度降到O(n)。将第一次见的字符作为key放入字典中,值为它的位置。再碰见就移动左指针class Solution(object): def lengthOfLongestSubstring(self, s): ...原创 2019-02-28 23:06:17 · 138 阅读 · 0 评论 -
6--leetcode--python笔记
6.将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为"LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变...原创 2019-03-04 23:09:50 · 179 阅读 · 0 评论 -
5--leetcode--python
5.最长回文子串给定一个字符串s,找出s中的最长回文子串。思路:为了降低时间复杂度,先写个for循环,把每个字符作为回文子串的中间点。再从中心点左右扩展找出该中心点的最大回文子串。第二步单独写个函数完成。注意子串分奇数串和偶数串,注意边界取值。class Solution(object): def longestPalindrome(self, s): m...原创 2019-03-02 15:41:56 · 224 阅读 · 0 评论 -
1,2--LeetCode-python笔记
一.给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。(1)class Solution(object): def twoSum(self, nums, target): l={} for i ...原创 2019-02-27 10:35:46 · 142 阅读 · 0 评论 -
7--leetcode--python笔记
一.给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。...原创 2019-03-04 17:10:48 · 165 阅读 · 0 评论 -
26--leetcode--删除排序数组的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。class Solution(object): def removeDuplicates(self, nums): if len(nums) ==1: ...原创 2019-08-15 11:41:07 · 132 阅读 · 0 评论