自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 文本相似度比赛baseline

比赛地址:https://tianchi.aliyun.com/competition/entrance/231776/information训练集共包括8753对数据,共八种类别:'哮喘', '咳血', '支原体肺炎', '肺气肿', '肺炎', '上呼吸道感染', '胸膜炎', '感冒'。比赛任务是进行细粒度的文本匹配(具体见官网),数据大致如下:首先简单观察一下数据,检查NAN值...

2020-02-25 19:05:44 964

原创 LeetCode回溯问题小结

回溯问题的基本思路,直观的来说就是尝试所有的情况,如果行不通则返回上一步,再继续尝试下一种情况。回溯问题也可以被认为是有剪枝的深度优先搜索,关键就是要找到终止条件与如何前进。22. 括号生成class Solution: def __init__(self): self.res = [] def generateParenthesis...

2019-06-01 11:18:05 297

原创 N皇后问题(Python实现)

n皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。也就是说:存在一个N*N的棋盘,要放N个棋子,每个棋子不同行,不同列,不同(正反)对角线,如图:解题思路: 递归 + 回朔首先我们要给定一个矩阵,来存放棋子,从第一行开始遍历,接着遍历这一行的每一列。假设我们在位置[1, 2]处已经放上棋子,我们开始遍历第二行,首先判断[2,1]位置存放棋...

2019-05-27 17:01:41 15276 13

原创 LeetCode84. 柱状图中最大的矩形(python)

解题思路: 单调栈先说单调栈,单调栈是一种特殊的栈,特殊的地方在于,每当有元素入栈时,只要栈顶元素大于要入栈的元素,栈顶元素就要弹出,直到栈顶元素小于等于当前元素,当前元素再入栈。所以说单调栈总是自底至顶单调的。对于这道题来说,寻找最大面积的矩形,我们只要把每个元素作为高的最大矩形都求出来,再求最大即可。遍历heights,大于栈顶元素则入栈。当栈顶元素大于当前元素,弹出栈顶,此...

2019-05-21 12:12:52 803 1

原创 逻辑回归梯度下降 Python实现

加载库, 数据读取。正类样本:(x_1, y_1),负类样本:(x_0, y_0),标签:label。import numpy as npimport mathimport matplotlib.pyplot as pltfilename = r"C:\Users\samsara\Desktop\LR.txt"fr = open(filename)#读取数据data, la...

2019-05-17 17:10:29 2087

原创 线性回归梯度下降 Python实现

import numpy as npX = 2*np.random.rand(100, 1) Y = 4 + 3*X + np.random.randn(100, 1) X_b = np.c_[np.ones((100, 1)), X]#梯度下降求解def error_function(theta, X, y): diff = np.dot(X, theta) - y ...

2019-05-16 13:31:11 295

原创 LeetCode33. 搜索旋转排序数组(python)

假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[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...

2019-05-12 20:27:36 175

原创 LeetCode32. 最长有效括号(python)

给定一个只包含'('和')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"解题思路:堆栈因为要找到包含有效括号最长的子串,所以我们要定义一个start最为当前子串的起始位置。从头开始遍历字符...

2019-05-12 15:22:33 538

原创 LeetCode42. 接雨水(python)

解题思路:双指针接水量 = “轮廓”面积 - “柱子”面积的和我们有双指针从头尾开始遍历整个数组,右指针:从0开始,向左移动,直到遇到第一个大于0的数停下;左指针:从n-1开始,向左移动,直到遇到第一个大于0的数停下。此时比较height[left]和height[right]的大小,将数组内的所有数减去最小的值,并将减去的部分记录。直到左指针和右指针指向同一个点时结束。...

2019-05-08 16:18:00 519

原创 堆排序Python实现

首先说堆,什么是堆?堆(默认大根堆)有两个特点:1.堆都是完全二叉树 2.堆的父节点的值都大于其孩子节点的值其次我们要生成一个堆,也就是我们要从堆的最后一个父节点(度不为0的节点,按层次遍历数)开始往前依次进行堆化,以此递归的生成大根堆。def max_heapify(heap, heapSize, root): """堆化""" left = 2*root...

2019-05-04 12:33:59 2204 1

原创 常见排序算法Python实现

冒泡排序:最优时间复杂度:O(n)最坏时间复杂度:O(n^2)稳定性:稳定def bubble_sort(alist): """冒泡排序""" for j in range(len(alist)-1, 0, -1): count = 0 for i in range(j): if alist[i] > al...

2019-05-03 11:23:11 199

原创 二叉树的实现与遍历(Python)

1.二叉树是指每个节点最多有两个子树的树结构。2.二叉树的数学性质:a.第I层上至多有2^(i-1)个节点 b.对于一个深度为k的二叉树,最多有(2^k - 1)个节点 c.任意一个二叉树,叶节点个数为N0,度数为2的节点个数为N2,N0=N2+1...

2019-05-02 12:35:42 188

原创 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-05-01 20:53:31 784

原创 LeetCode10. 正则表达式匹配(python)

给定一个字符串(s) 和一个字符模式(p)。实现支持'.'和'*'的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个字符串(s) ,而不是部分字符串。说明:s可能为空,且只包含从a-z的小写字母。 p可能为空,且只包含从a-z的小写字母,以及字符.和*。示例 1:输入:s = "aa"p...

2019-04-26 10:49:54 266

原创 最长公共子串与最长公共子序列问题(动态规划)

公共子串是连续的,而公共子序列不是连续的。x1 = "abcc",x2="acbcc",x1和x2的公共子串为"bcc",公共子序列为"abcc"。我们来看一下两个问题的转移方程:最长公共子串:dp[i][j]=0 if i=0 or j=0dp[i][j]=dp[i-1][j-1]+1 if x1[i]=x2[j]dp[i][j]=0 ...

2019-04-25 22:01:48 203

原创 LeetCode8. 字符串转换整数 (atoi)(python)

请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...

2019-04-24 21:17:20 326

原创 LeetCode6. Z 字形变换(python)

将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为"LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的...

2019-04-23 10:38:18 244

原创 LeetCode链表相关题目(1)

21. 合并两个有序链表将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4# Definition for singly-linked list.# class ListNode:# d...

2019-04-01 12:58:45 115

原创 LeetCode2. 两数相加(python)

给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...

2019-03-31 19:33:19 474

原创 LeetCode120/931. 下降路径问题(python)

120. 三角形最小路径和给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)解题思路:贪婪算法使每一步都是当前最优,也就是说triangle[i][j]...

2019-03-30 09:36:51 139

原创 LeetCode5. 最长回文子串(python)

给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解题思路:manacher(马拉车算法)马拉车是专门处理回文字符子串的一种算法。首先,回文字符串有两种:长度为奇数,"aba";长度为...

2019-03-29 17:02:50 885

原创 LeetCode64. 最小路径和(python)

给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解题思路:动态规划核心公式: matrix[i][j] += min(matrix[...

2019-03-27 13:26:23 639

原创 LeetCode3. 无重复字符的最长子串(python)

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最...

2019-03-24 19:55:58 669 1

原创 LeetCode48. 旋转图像(python)

给定一个n×n的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3...

2019-03-24 19:01:10 261

原创 LeetCode980. 不同路径 III(python)

在二维网格grid上,有 4 种类型的方格:1表示起始方格。且只有一个起始方格。 2表示结束方格,且只有一个结束方格。 0表示我们可以走过的空方格。 -1表示我们无法跨越的障碍。返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目,每一个无障碍方格都要通过一次。示例 1:输入:[[1,0,0,0],[0,0,0,0],[0,0,2,...

2019-03-22 13:53:41 378

原创 LeetCode59. 螺旋矩阵 II(python)

59. 螺旋矩阵 II给定一个正整数n,生成一个包含 1 到n2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]解题思路:对每个周期(排列一圈),每个方向排列(放置)元素的个数固定;举例来说,对于n=4时,第一个周期每个方向都放置3(n-1)个元素,第...

2019-03-21 13:26:29 483

原创 LeetCode54. 螺旋矩阵(python)

54. 螺旋矩阵给定一个包含mxn个元素的矩阵(m行,n列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10...

2019-03-21 13:05:59 435

原创 LeetCode62/63. 不同路径问题(python)

62. 不同路径一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m和n的值均不超过 100。示例1:输入: m = 3, n = 2...

2019-03-20 23:08:36 573

原创 LeetCode241. 为运算表达式设计优先级(python)

给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含+,-以及*。示例1:输入: "2-1-1"输出: [0, 2]解释: ((2-1)-1) = 0 (2-(1-1)) = 2示例2:输入: "2*3-4*5"输出: [-34, -14, -10, -10, 10]解...

2019-03-19 13:37:24 574

原创 LeetCode240. 搜索二维矩阵 II(python)

题目:编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, ...

2019-03-18 19:27:22 353

原创 LeetCode238. 除自身以外数组的乘积(python)

给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4](nums)输出: [24,12,8,6](output)说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题tips 不能使用循环嵌套(时间复杂度)运算思路:...

2019-03-18 14:53:35 246

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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