- 博客(105)
- 收藏
- 关注
原创 60-合并K个排序链表-LeetCode23(python)
题目描述合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6思路一暴力方法,把所有链表的节点读入一个数组中,对数组进行排序后,转化成一个链表输出代码一# D...
2019-12-03 10:52:16 275
原创 RTP/RTCP和RTSP的关系整理
RTP 协议实际上是由实时传输协议RTP(Real-time Transport Protocol)和实时传输控制协议RTCP(Real-time Transport Control Protocol)两部分组成。RTP 协议基于多播或单播网络为用户提供连续媒体数据的实时传输服务;RTCP协议是 RTP协议的控制部分,用于实时监控数据传输质量,为系统提供拥塞控制和流控制。RTP(1)R...
2019-12-02 18:42:49 2101
原创 62-搜索旋转排序数组-LeetCode33(python)
题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例示例 1:输入: nums = [4,5,6,...
2019-08-20 16:51:29 269
原创 61-最长有效括号-LeetCode32(python)
题目描述给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"思路题解中的常规思路:找到字符串中可以匹配的括号对的下标,将这些下标汇总到一个数组中,排序,然后找排序后数组中最长...
2019-07-24 19:17:51 389
原创 60-下一个排列-LeetCode31(python)
题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。示例以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1思路参照官方题解的思路。(1)首先从...
2019-07-23 16:12:36 187
原创 59-合并两个排序链表-LeetCode21(python)
题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路一官方题解之递归:忽略空链表的情况,那么merge两个链表的操作可以定义为两个列表中头部元素较小的一个,与另一个列表的merge。递归的出口就是...
2019-07-17 16:19:58 298
原创 58-删除链表的倒数第N个节点-LeetCode19(python)
题目描述给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?解决思路一官方题解中的第二种思路。首先使用哑节点,为了简化...
2019-07-17 11:45:34 274
原创 57-最长回文串-LeetCode10(python)
题目描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例...
2019-07-15 15:01:10 212
转载 python中数组切片[:,i] [i:j:k] [:-i] [i,j,:k]
逗号“,”分隔各个维度,“:”表示各个维度内的切片,只有:表示取这个维度的全部值,举例说明如下1.二维数组X[:,0]取所有行的第0个数据,第二维下标位0的所有数据,第0列(从0开始)X[:,1] 取所有行的第1个数据X[:,1:]第一维全部取,即所有行,列上从第一列开始取,不要第0列X[1,:]是取第1维中下标为1的元素的所有数据,第1行(从0开始)X[:2,1:]第一维...
2019-07-15 11:45:56 403
原创 python 遍历字典
有两种方法若现有字典:Dict = {'Monica':12,"Edith":24,"Mary":48,"Ema",88}一、先取key值,通过dict[key]拿到valueDict = {'Monica':12,"Edith":24,"Mary":48,"Ema":88}for name in Dict: print(name,Dict[name])二、使...
2019-07-11 16:54:46 239
原创 56-最长回文串-LeetCode409(python)
题目描述给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。思路遍历字符串,对每一个字符出现的次数进行计数,出...
2019-07-11 16:45:43 288
原创 python 字典的get函数
语法dict.get(key,default = None)描述返回字典中指定键(key)的值,如果该键不存在的话,返回默认值(default)示例
2019-07-11 16:14:57 444
原创 python中defaultdict的用法
用法from collections import defaultdictdict = defaultdict(int)import collectionsdict = collections.defaultdict(int)官方定义class collections.defaultdict([default_factory[, ...]])default_factory...
2019-07-11 16:00:31 428
原创 55-四数相加II-LeetCode454(python)
题目描述给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。示例输入:A = ...
2019-07-10 15:12:16 319
原创 54-四数之和-LeetCode18(python)
题目描述给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等。找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组...
2019-07-08 15:51:44 168
原创 53-数组-电话号码的字母组合-LeetCode17(python)
题目描述给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].思路一pythons的列表推导式嵌套。代码一class Solution: de...
2019-07-03 15:06:23 270
原创 52-数组-最接近的三数之和-LeetCode16(python)
题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).、思路用两个变量,一个来...
2019-06-27 09:12:58 277
原创 51-数组-三数之和-LeetCode15(python)
题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解决...
2019-06-26 09:20:16 454
原创 50-排序-两个数组的交集-LeetCode349(python)
题目描述给定两个数组,编写一个函数来计算它们的交集。示例示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 解题思路我只想到了可...
2019-05-07 09:25:22 327
原创 49-数组-分发饼干-LeetCode455(python)
要坚持才可以的,懈怠了三个多月,不好的。 题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj。如果 sj >= gi,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出...
2019-04-28 09:50:20 329
原创 48-数组--LeetCode(python)
题目描述给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums = [...
2019-01-07 09:43:04 399
原创 47-数组-存在重复元素-LeetCode217(python)
题目描述给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true解决思路用到set的特性,...
2019-01-07 09:02:53 273
原创 46-数组-矩阵置零-LeetCode73(python)
题目描述给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]输入: [ [0,1,2,0], [3,4,5,2], [1,3,1,5]]输出: [ ...
2019-01-07 08:56:45 392
原创 45-数组-搜索插入位置-LeetCode25(python)
题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0...
2018-12-30 20:06:31 238
原创 44-数组移除元素-LeetCode27 (python)
题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 n...
2018-12-30 19:35:35 265
原创 43-数组-删除排序数组中的重复项-LeetCode026 (python)
题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。...
2018-12-27 17:20:06 206
原创 42-数组-按奇偶排序数组-LeetCode905 (python)
题目描述给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。解决思路比较笨但可行的办法,用两个数组分别存放奇数和偶数,最后把两个数组合起来。代码clas...
2018-12-20 17:51:05 408
原创 41-数组-单调数列-LeetCode896(python)
题目描述如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。示例示例 1:输入:[1,2,2,3]输出:true示例 2:...
2018-12-20 17:40:44 926
原创 40-数组-公平的糖果交换-LeetCode888(python)
题目描述爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。...
2018-12-20 17:29:07 291
原创 39-数组-转置矩阵-LeetCode867(python)
题目描述给定一个矩阵 A, 返回 A 的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]] 提示:1 <= A.le...
2018-12-19 16:26:10 219
原创 38-数组-求众数-LeetCode169(python)
题目描述给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2解决思路一既然是假定了一定存在众数,那么我们可以对数组进行排序,排序之后不论是按升序还是降序,众数一定会出...
2018-12-14 13:47:42 662 1
原创 37-数组-两数之和II-LeetCode167(python)
题目描述给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例输入: numbers = [2, 7, 11, ...
2018-12-12 08:45:32 247
原创 36.数组-买卖股票的最佳时机II-Leetcode 122(python)
题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的...
2018-12-10 09:47:10 244
原创 35.数组-杨辉三角II-Leetcode 119(python)
题目描述给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例输入: 3输出: [1,3,3,1]解决思路跟上一题,也就是杨辉三角的区别在于这一次只要求输出最后一行,因此我还是用上一题的思路,只是在输出时变化了一下。另外是发现如果不把第二行的[1,1]放入循环中算法的话,算法的效率好像一下子快了非常多,但是...
2018-12-10 09:05:46 313
原创 34.数组-杨辉三角-Leetcode 118(python)
题目描述给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]解决思路思路就是根据行数来不断产生当前行的一维数组,并把当前的一维数组添加到整个三角形的二维数组里。...
2018-12-06 10:46:34 335
原创 33.动态规划-最大正方形-Leetcode 221(python)
题目描述在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4解决思路参考网友大神:如果我们能够判断一个点是正方形右下角的点的话,那么肯定可以确定它的左边、上边和左上三个点,分别都是某个正方形的右下角的点。关于边长:以当前点为右下角的正方...
2018-12-05 09:56:50 2028
原创 32.动态规划-打家劫舍II-Leetcode 213(python)
题目描述你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例示例 1:输入: [2,3,2]输...
2018-12-05 08:49:43 663
原创 31.动态规划-乘积最大子序列-Leetcode 152(python)
题目描述给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。自己的错误思路自以为抄了足够多的动态规划的题了,怎么着也应该...
2018-12-03 11:07:04 1147
原创 30.动态规划-单词拆分-Leetcode 139(python)
问题描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "lee...
2018-11-29 17:36:21 1283
原创 29.动态规划-三角形最小路径和-Leetcode 120(python)
问题描述及示例给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的...
2018-11-29 16:28:26 753
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人