自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 leetcode 44. 通配符匹配

题目描述给定一个字符串(s) 和一个字符模式(p) ,实现一个支持'?'和'*'的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s可能为空,且只包含从a-z的小写字母。p可能为空,且只包含从a-z的小写字母,以及字符?和*。示例1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。示例2:输入:s = ...

2020-08-05 21:37:55 13

原创 基于chatterbot+django的聊天机器人

摘要基于开源工具chatterbot和Django框架实现在线聊天机器人。这里只是一个简单的demo,供交流学习使用。ChatterBotchatterbot是一个开源的聊天机器人框架,原生支持多种语言,提供了丰富的接口用于训练和部署,默认支持sqlLite数据库,每次训练的结果会保存到sqlLite数据库中,部署时只要保证chatterbot实体的名称相同,就可以使用训练好的模型。更多细节可以参考官方文档ChatterBot官方文档DjangoDjango是基于python的开

2020-08-04 22:24:56 24

原创 leetcode 43 字符串相乘

题目描述给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1和num2的长度小于110。num1 和num2 只包含数字0-9。num1 和num2均不以零开头,除非是数字 0 本身。不能使用任何标准库的大...

2020-08-04 20:49:27 9

原创 leetcode 42. 接雨水

题目描述给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6解题思路主要难点是想明白雨水的累积过程。1、在某个位置i处,它能积累的最大雨水取决于左右两边最大高度中的最小值2、左边的最大值小于右边的最大值时,当前位..

2020-08-03 20:48:34 12

原创 leetcode 41 缺失的第一个整数

题目描述给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。解题思路考虑到最后要输出的是正整数,并且不用考虑输入数组中是否有重复或者负数。已知正整数的范围是1,2,3,..... N,且1是最小的正整数所以如果输入数组中没有正...

2020-07-29 23:49:15 22

原创 leetcode 40 组合总和 ||

题目描述给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,所求解集为:[ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6]]...

2020-07-28 23:00:47 25

原创 leetcode39.组合总和

题目描述给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例2:输入:candidates = [2,3,5]...

2020-07-27 23:49:21 15

原创 leetcode38 外观数列

题目描述给定一个正整数 n(1 ≤n≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1描述前一项,这个数是 1 即 “一个 1 ”,记作 11描述前一项,这个数是 11 即 “两个 1 ” ,记作 21描述前一项,这个数是 21 ...

2020-07-27 22:59:15 41

原创 leetcode 37.解数独

题目描述编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。空白格用'.'表示。一个数独。答案被标成红色。示例Note:给定的数独序列只包含数字1-9和字符'.'。你可以假设给定的数独只有唯一解。给定数独永远是9x9形式的。解题思路深度优先搜索。当前位置上如果有数字,判断下一个位置...

2020-07-21 00:17:00 16

原创 leetcode 36. 有效的数独

题目描述判断一个9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用'.'表示。示例1:输入:[ ["5","3",".",".","7",".",".",".","."], ["6",".",".","1","9","5",".","...

2020-07-17 15:28:43 15

原创 leetcode 35.搜索插入位置

题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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输出: 0解题思路二分法,如果可以直接找到target,输出位置,如果找不到,判断target和left的大.

2020-07-14 23:19:03 13

原创 leetcode 34. 在排序数组中查找元素的第一个和最后一个位置

题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]解题思路看到时间复杂度是logn,不用想...

2020-07-14 22:35:45 20

原创 leetcode 33 搜索旋转排序数组

题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例2:输入: nums = [4,5,6,7,0,1,...

2020-07-09 23:05:34 31

原创 leetcode 31 下一个排列

题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1解题思路没有用到什么复杂的算法,重点是理解题目要做什么。1、观察示例,输入如果是降序排序,则需要变成升序排列2、有下一个排序的输入,都是在调

2020-07-09 22:03:57 25

原创 leetcode 30 串联所有单词的子串

题目描述给定一个字符串s和一些长度相同的单词words。找出 s 中恰好可以由words 中所有单词串联形成的子串的起始位置。注意子串要与words 中的单词完全匹配,中间不能有其他字符,但不需要考虑words中单词串联的顺序。示例 1:输入: s = "barfoothefoobarman", words = ["foo","bar"]输出:[0,9]解释:从索引 0 和 9 开始的子串分别是 "barfoo" 和 "foobar" 。输出的顺序不重要,...

2020-07-09 00:29:47 33

原创 leetcode 29 两数相除

题目描述给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数dividend除以除数divisor得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333..) ...

2020-07-04 00:40:56 35

原创 leetcode 28 实现strStr()

题目描述实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出: -1说明:当needle是空字符串时,我们应当返回什么值呢?这是一个在...

2020-07-03 00:57:31 32

原创 leetcode 27 移除元素

题目描述给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [...

2020-07-03 00:03:55 18

原创 leetcode26 删除排序数组中的重复项

题目描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的...

2020-07-02 23:48:13 24

原创 leetcode 25 k 个一组翻转列表

题目描述给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当k= 2 时,应当返回: 2->1->4->3->5当k= 3 时,应当返回: 3->2->1->4->5说明:你的算法只能使用常数的额外空间。你不...

2020-07-01 23:41:41 23

原创 leetcode 24 两两交换链表中的节点

题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs解题思路一考虑两个变量值交换的情况,引入中间变量temp,然后交换两个变量的值。变量 a,b..

2020-07-01 01:13:50 20

原创 基于openCV、PyTroch视频图像实时风格迁移实现

前言利用openCV和预训练的PyTorch风格迁移模型结合摄像头实现视频图像实时风格迁移。效果展示视频图像实时风格迁移效果.gif没有做任何模型压缩,在我的Mac笔记本上可以跑到10FPS,基本是准实时的效果。运行环境openCV-4.0 以上imutilstime算法实现核心算法是风格迁移,关于风格迁移的原理总结起来就是,生成一张新的图像,使其同时兼具内容图像的内容和风格图像的风格。通过提取预训练好的分类网络(VGG、ResNEt等)不同的层作为内容层和风.

2020-06-29 10:50:01 92

原创 leetcode 23 合并k个排序链表

题目描述合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6解题思路一虽然难度是hard,但是这题用暴力解法效率也还不错。1、将所有链表的元素放到一个列表中2、列表中的元素进行排序3、用排好序的元素生成新的链表。直接上代码吧,没有需要特别说明的地方。...

2020-06-23 23:31:02 23

原创 leetcode22. 括号生成

题目描述:数字 n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。示例:输入:n = 3输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ]解题思路一类似的需要考虑所有组合可能性的问题,一般都离不开递归和回溯法,或者BFS、DFS。列出所有可能的括号组合,然后剔除其中无效的括号组合。class Sol...

2020-06-18 00:49:38 31

原创 leetcode 21 合并两个有序链表

题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题思路一正面解题。(1)新建一个节点(2)l1,l2中有一个为None时,继续指向另一个非空的(3)如果当前l1的值小于等于l2的值,当前节点指向当前l1,继续比较下一个l1和当前l2(4)如果当前l1的值大于等于l1...

2020-06-12 00:02:41 37

原创 leetcode19 删除链表的倒数第N个节点

题目描述给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。解题思路链表问题,用指针就对了。(1)可以设置两个指针,一个slow、一个fast,fast指针以第n个元素的位置作为起点,slow指针以第一个元素的位置作为起点(2)从当前位置,fast指针和slo...

2020-06-10 23:29:59 38

原创 leetcode 17 电话号码的字母组合

题目描述给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].解题思路对于这种很明显需要循环遍历,同时for循环又很难实现的组合问题,可以说有8,9成的概率不是深度优先搜索、广度有限搜索就是回溯法,总之是跟递归脱不了关系。首先,可以确定这是一个组合问题。...

2020-06-10 00:04:20 27

原创 leetcode 16 最接近的三数之和

题目描述:给定一个包括n 个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3-10^3<= nums[i]<= 10...

2020-06-09 00:34:40 20

原创 leetcode 10 正则表达式匹配

给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和'*'的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。说明:s可能为空,且只包含从a-z的小写字母。p可能为空,且只包含从a-z的小写字母,以及字符.和*。示例 1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。示例 2:输入:s =...

2020-05-28 10:49:40 59

原创 聊一聊CNN中的感受野、优化函数、激活函数、Loss函数等

提纲:1、感受野2、优化函数 sgd adam rmspop。。。。3、activation ReLU LeakyReLU 等4、padding计算方式,卷积后尺寸

2020-05-24 15:51:11 232

原创 leetcode 18.四数之和

题目描述给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0,...

2020-05-22 13:42:47 39

原创 leetcode 15 三数之和

题目描述给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解题思路一参考两数之和的解法,多指针法,两数之和需要左指针和右指针,所以可以合理的推测,三数之和需要用到三...

2020-05-17 18:00:28 49

原创 leetcode 1 两数之和

题目描述给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路一双指针遍历。对原列表进行排序并且记录每个元素排序前的索引,然后left指针从左到右移动,ri...

2020-05-16 21:28:36 32

原创 leetcode 14 最长公共前缀

题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。解题思路一简单朴素,逐一比较就行。(1)首先可以确定的是最长前缀的长度小于等于列表中最短字符串的长度。res <= min([len(each) for each in str...

2020-05-15 16:29:16 26

原创 leetcode 773 滑动谜题

题目描述在一个 2 x 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用0来表示.一次移动定义为选择0与一个相邻的数字(上下左右)进行交换.最终当板board的结果是[[1,2,3],[4,5,0]]谜板被解开。给出一个谜板的初始状态,返回最少可以通过多少次移动解开谜板,如果不能解开谜板,则返回 -1 。示例:输入:board = [[1,2,3],[4,0,5]]输出:1解释:交换 0 和 5 ,1 步完成输入:board ...

2020-05-14 22:30:14 34

原创 leetcode 203 移除链表元素

题目描述:删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5链表元素的操作没什么好纠结的,上指针就行,一个不够就上两个,注意判断非空以及终止。(1)定义链表结构: class ListNode: def __init__(self, x): self.val = x self.n..

2020-05-14 11:28:27 52

原创 leetcode32.最长有效括号

题目描述给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"解题思路一题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-valid-parentheses...

2020-05-13 11:35:48 71

原创 Image-to-Image Translation with Conditional GAN :像素级别图像到图像的变换

前言:假设看到这篇文章的炼丹师对GAN有一定程度的了解,文章中提到GAN的一些基本概念不做深入探究,主要内容放在Conditonal GAN以及keras实现上,重点是算法的原理以及实现过程。掌握算法的原理可以解决为什么的问题即算法的本质,熟悉实现过程可以解决怎么用的问题即算法的工程化。第一章背景这篇文章内容基于paper《Image-to-Image Translation ...

2020-03-09 12:18:23 104

原创 基于Python的中文聊天机器人

什么是聊天机器人?聊天机器人(chatbot、talkbot)本质上是基于文本和语音处理算法能够与真人进行交流的计算机程序,广泛用于客服、问答等系统中。优秀的chatbot要能够通过图灵测试。为什么需要聊天机器人?单个人的精力、时间和知识存储都是有限的。以电商平台的客服举例,按8小时工作制算如果要保持24小时人工客服在线需要招聘3个客服人员,并且客服人员必须熟悉店铺内所有商品同时熟练掌握与客...

2019-12-17 19:02:18 281

原创 基于UNET卫星云图识别--Kaggle 挑战赛--Understanding Clouds from Satellite Images

前言Kaggle挑战赛的一个项目,非参赛项目,做这个只是研究实验用,另外这只是一个简单快速的算法验证实验,目前的acc=0.55,后续可能会做一些优化,骨干网络选用resnet系列或者shufflenet系列或者MaskRcnn或者Fast-SCNN等较为优秀的模型。数据集数据是算法的灵魂算法是用来分析数据总结规律的工具,并且把这个规律应用于未知数据的过程,与数据最匹配的算法即...

2019-11-21 19:16:48 399 9

提示
确定要删除当前文章?
取消 删除