算法练习
陈路飞
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
17--leetcode--python
1.给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 思路:要做两个数组,遍历上一轮...原创 2019-04-08 22:50:44 · 298 阅读 · 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 · 351 阅读 · 0 评论 -
12--leetcode--数字转罗马数字
罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 相当于如下哈希表 d = {1000:'...原创 2019-08-03 15:21:09 · 169 阅读 · 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 · 308 阅读 · 0 评论 -
20--leetcode--括号是否匹配
利用堆。 class Solution: def isValid(self, s): stack = [] lookup = { "(":")", "[":"]", "{":"}" } for i in s: i...原创 2019-08-05 17:21:05 · 248 阅读 · 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 · 132 阅读 · 0 评论 -
21--leetcode--合并两个有序列表
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def mergeTwoLists(self, l1, l...原创 2019-08-14 10:45:35 · 170 阅读 · 0 评论 -
22--leetcode--括号生成
给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] class Solution(object): def generateParenthesis(self, n): ...原创 2019-08-14 15:16:25 · 155 阅读 · 0 评论 -
24--leetcode--俩俩交换链表中的结点
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def swapPairs(self, head): ...原创 2019-08-14 17:34:17 · 182 阅读 · 0 评论 -
22--leetcode--python
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] class Solution(object): def generateParenthesis(self, N): ...原创 2019-04-11 22:13:28 · 314 阅读 · 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 · 244 阅读 · 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 · 915 阅读 · 0 评论 -
3--LeetCode--python
一.给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 思路:暴力算法两个for,时间复杂度O(n2)。所以采用哈希表将时间复杂度降到O(n)。将第一次见的字符作为key放入字典中,值为它的位置。再碰见就移动左指针 class Solution(object): def lengthOfLongestSubstring(self, s): ...原创 2019-02-28 23:06:17 · 149 阅读 · 0 评论 -
6--leetcode--python笔记
6.将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。 比如输入字符串为"LEETCODEISHIRING"行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你实现这个将字符串进行指定行数变...原创 2019-03-04 23:09:50 · 192 阅读 · 0 评论 -
5--leetcode--python
5.最长回文子串 给定一个字符串s,找出s中的最长回文子串。 思路:为了降低时间复杂度,先写个for循环,把每个字符作为回文子串的中间点。再从中心点左右扩展找出该中心点的最大回文子串。第二步单独写个函数完成。注意子串分奇数串和偶数串,注意边界取值。 class Solution(object): def longestPalindrome(self, s): m...原创 2019-03-02 15:41:56 · 239 阅读 · 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 · 153 阅读 · 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 · 180 阅读 · 0 评论 -
26--leetcode--删除排序数组的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 class Solution(object): def removeDuplicates(self, nums): if len(nums) ==1: ...原创 2019-08-15 11:41:07 · 146 阅读 · 0 评论
分享