自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

h

  • 博客(115)
  • 收藏
  • 关注

原创 ❗️❗️❗️LeetCode 315 Hard 逆序数计算 Python

方法一:算法:分治/归并排序    思路:        利用分治的思想,归并排序时当前下标i后有多少个元素要把位置提到i之前就是其逆序数,        在排序过程中记录逆序数的个数。⬅️其实比较难发现这个特征我觉着         比如左右已经排序好的两个序列left = [-7,1,5,9],right = [-2,1,3,5]            观察左右两个...

2018-12-01 16:26:10 704

原创 multiprocessing 中fork和spawn的区别

工作中遇到的实际问题,百度居然搜不到中文答案,特此记录下,感谢万能的stackoverflow!首先fork和spawn都是构建子进程的不同方式,区别在于:fork:除了必要的启动资源外,其他变量,包,数据等都继承自父进程,并且是copy-on-write的,也就是共享了父进程的一些内存页,因此启动较快,但是由于大部分都用的父进程数据,所以是不安全的进程spawn:从头构建一个子进程,父进程的数据等拷贝到子进程空间内,拥有自己的Python解释器,所以需要重新加载一遍父进程的包,因此启动较慢,由

2021-09-26 20:01:14 10094

转载 指数分布族与广义线性模型

指数分布族与广义线性模型: https://blog.csdn.net/bitcarmanlee/article/details/51292380softmax是多项式分布,也是指数分布族的一部分:http://sakigami-yang.me/2017/08/10/thinking-from-softmax-01/...

2019-07-21 22:10:10 240

转载 C++模板template

原创地址:https://www.cnblogs.com/yangxiaoping/p/8268209.html

2019-07-19 17:11:34 240

转载 防止头文件重复包含的两种方法及区别

原地址:https://blog.csdn.net/lixungogogo/article/details/50992298在编译阶段,每个文件是分别编译的,在编译阶段我们可以通过条件编译的方法去防止头文件重复包含,但是由于宏是在编译之前处理的,即宏的功能仅仅只能体现在编译阶段,因此#ifndef #define #endif语句只能防止编译阶段的“重复包含”错误。在链接时,由于链接器的作用...

2019-07-19 16:29:13 608

转载 C++极简教程

原作地址:https://www.cnblogs.com/shujuxiong/p/9153087.html////////////////// 与C语言的比较////////////////// C++_几乎_是C语言的一个超集,它与C语言的基本语法有许多相同之处,// 例如变量和函数的声明,原生数据类型等等。// 和C语言一样,在C++中,你的程序会从main()开始执行,...

2019-07-19 11:07:01 484

原创 机器学习 深度学习 周期性 特征编码 正弦/余弦编码

最近面试有被问到自己项目中关于周期性特征的编码问题。网上搜索了一下,中文的资料居然没什么。。。用英文搜好多(果然中文内容还是不够多),搬运一下kaggle的编码教程,并记录一下周期性编码的方式kaggle教程地址机器学习中特征的重要性不言而喻,如何将现实世界中描述数据的特征用准确的方式编码并传达给机器进行运算至关重要对于周期性的变量,如日期,月,日,时,分,单纯用数值表示或者简单按数值...

2019-04-10 16:29:52 4590 5

原创 LeetCode 763 Medium 最小划分区间的长度

def partitionLabels(S): """ 算法:贪心,双指针 思路: 记录每个字母的最后出现的位置,再遍历整个字符串,用一个指针start和end记录当前区间的起止位置, 目标区间应该是能使得区间内的所有字母都只出现在区间内的最短的区间, 所以再遍历一次S,设置end = max(end, last[cha...

2019-02-16 15:49:55 468

原创 ❗️❗️❗️LeetCode Hard 312 打破气球求最大收益 Python

def maxCoins(self, nums): """ HuaHuaJiang's Method 算法:动规 将序列分为 i...k....j 用c[i][j]来表示从nums中第i到j能获取的最大收益,那么答案就是c[1][n] 要将nums 填充,左侧填充1,右侧填充1,来达到nums[-1] = 1和nums[n+1] = 1 ...

2019-01-27 18:07:39 227

原创 ❗️❗️❗️LeetCode 494 Medium 目标之和 Python

def findTargetSumWays(self, nums, S): """ HuaHuaJiang's Method 算法:动规 元素和是nums_sum,整个数组的元素取值范围就是[-nums_sum,+nums_sum],所以总共可能有的状态值就是2*nums_sum+1 因为列表下标都是正的,所以设定一个offset, ...

2019-01-27 14:31:13 218

原创 LeetCode 301 Hard 去除无效括号使得括号对合法 Python

def removeInvalidParentheses(self, s): """ HuaHuaJiang's Method 算法:递归 用l和r记录不匹配的左括号数量和右括号数量 然后从0位置开始递归,如果l == 0 and r == 0 并且做移除不合法括号处理后的字符串是合法的话,即isValid的话, 就添加到结果集中 ...

2019-01-26 20:35:19 990 5

原创 LeetCode 406 Medium 按身高重排队列 Python

def reconstructQueue(self, people): """ Disscussion Method 算法:贪心, 先处理当前最高的人,因为最高的人前面除了和自己同高度的人,一定不会有更高的人在他前面,而且根据题意,决定 一个人位置的关键在于比他高的人的情况,而比它矮的则不考虑,所以依次安排当前最高的人的站位,先排最高的人是合适的 ...

2019-01-26 16:28:53 500 1

原创 LeetCode 560 Medium 和为K的子数组 Python

def subarraySum(nums, k): """ Inspired By Hint 算法:哈希表 思路: 首先可以把最暴力的解法写出来,用三层for 遍历一个一个子序列,这样明显有冗余 可以稍微改进,用两层for 来遍历,用一个sum记录前面的累加和,再记录sum += nums[i]加当前的就好了 下面...

2019-01-20 19:55:56 409

原创 LeetCode 227 Medium 实现计算器II Python

def calculate( s): """ Disscussion Method 算法:栈 思路: 遍历字符串,将一串式子看成是各种乘除法计算后式子的和 如"1*2-3/4+5*6-7*8+9/10" 可以看成 1*2 + -3/4 + 5*6 + -7*8 + 9/10 也就是说当检测到数字(一...

2019-01-20 19:53:30 419

原创 LeetCode 224 Hard 实现计算器I Python

def calculate(self, s): """ Disscussion Method 算法:栈 思路: 输入一共就6种可能 0123456789 ( ) + - _ 空格 所以其实只要对这几种情况分别进行判断就好了,其中空格可以不...

2019-01-20 19:52:10 401

原创 LeetCode Medium 621 任务调度-最小间隔数 Python

def leastInterval(self, tasks, n): """ Solution Method 从举例子中我们可以得出任务调度的规律。 如给定:AAABBCD,n=2。那么我们满足个数最多的任务所需的数量,即可以满足任务间隔要求,即:AXXAXXA; (其中,X表示需要填充任务或者idle的间隔) 如果有两种...

2019-01-18 12:03:13 655

原创 LeetCode 239 Hard 滑动窗口内最大值 Python

def maxSlidingWindow(self, nums, k): """ Disscussion Method 算法:单调双向队列 思路: 和单调栈类似,单调栈是栈内元素保持某种单调性,单调双向队列是队列内保持某种单调性,然后由于本题的背景, 所以使用双向队列 首先要明确➡️单调队列保持队...

2019-01-17 15:10:10 767

原创 LeetCode Medium 394 字符串解码 Python

#!/usr/bin/env python# _*_ coding:utf-8 _*_def decodeString(self, s): """ My Method 算法:栈 思路: 在栈内保持字符串,和重复的数字 检测到数字的话,向后一直检测,把完整的数字存下来,压栈 检测到字母的话,向后一...

2019-01-15 12:38:11 498

原创 LeetCode 543 Easy 二叉树最长路径 Python

#!/usr/bin/env python# _*_ coding:utf-8 _*_def diameterOfBinaryTree(self, root): """ 一个节点要么作为路径的一部分,要么就是作为路径的根节点 作为路径的根节点时,路径长就是左孩子的最大高度+右孩子的最大高度+1 所以用计算高度的方式来计算,更新self.ans retu...

2019-01-15 12:36:46 3299 3

原创 LeetCode 124 Hard 二叉树最大路径和 Python

#!/usr/bin/env python# _*_ coding:utf-8 _*_def maxPathSum(self, root): """ Discussion Method 算法:递归 思路: 要明确怎样可以取到path上的最大路径和 某个节点node处,有这么三种状态, 1.作为路径和的一部...

2019-01-15 12:35:44 1564

原创 ❗️❗️❗️LeetCode 309 Medium 带冷却的股票买入卖出 Python

"""n day[i], we can choose cooldown, buy, or sell:Under what condition we can choose to cooldown on day[i]?It is obvious, there is not requirement. We can choose to cooldown on anyday.Under w...

2019-01-13 16:36:12 251

原创 LeetCode 32 Hard 最长合法括号对 Python

def longestValidParentheses(self, s): """ Solution Method 算法:动规 思路: 我一开始想的是和最长回文子串一样,用一个二维数组dp[i][j]来记录到s[i:j+1]部分是不是valid括号 就像回文子串一样用动规数组记录valid情况,而不是直接记录最长的子串长。这...

2019-01-13 12:19:03 298

原创 LeetCode Medium 96 BST树的个数 Python

 def numTrees(self, n): """ Solution Method 算法:动规 思路: 非常巧妙! 首先一定要找到下手点,BST是有有序数组的二叉搜索构建而来的,即某个节点的左节点都比他小,右节点都比他大,利用 这个特点去解题。还原本质,找到状态转移方程 首...

2019-01-11 16:01:57 207

原创 LeetCode Hard 85 最大矩形面积 Python

def maximalRectangle( matrix): """ Disscussion Method 算法:单调栈 思路: 本题的思路是将原问题转化为类似于84题的形式然后求解。非常巧妙! 关键一步就是将问题转化,可以将矩形分解为长乘宽,或者说底乘高,那么可以遍历矩阵的行,以每一行的1的位置做底, 这一...

2019-01-11 15:56:11 1752

原创 LeetCode Hard 128 最长连续子序列 Python

def longestConsecutive(self, nums): """ Solution Method 算法:集合 思路: 其实题解的思路挺朴素的,就是将nums转化为集合,然后使得查找时间退化为O1 只在nums中对每个num做序列起始位置的情况进行查找,然后用while一直从起始位置开始向后探索, ...

2019-01-11 15:54:38 761

原创 LeetCode Medium 98 验证二叉搜索树 Python

def isValidBST(self, root): """ My Method 2 Solution Method 也是这个思路 算法:递归 思路: 在递归的过程中判断左右是否满足要求 递归的时候用min_border和 max_border记录当前位置最小不能小于多少,最大不能大于多少 左侧节点应该小于...

2019-01-11 15:53:40 177

原创 LeetCode Meidum 79 搜索单词 Python

def exist(self, board, word): """ My Method 算法:回溯 思路: 比较典型的回溯题的思路,从某个位置出发看看某一处是否满足要求,在某个位置肯定是用BFS,对周围四个 位置进行判断是否满足要求,如果满足要求的话就进一步bfs,每一次bfs判断一个字符,所以要有index来记录当前 判断的是哪个...

2019-01-09 15:44:16 461

原创 LeetCode Medium 222 计算完全二叉树节点个数 Python

def countNodes(self, root): """ Disscussion Method 算法:递归 思路: 非常巧妙! 利用完全二叉树和满二叉树的性质,首先满二叉树是完全二叉树的一种特殊情况,即所有位置的节点都不为 空,一颗深度为K的满二叉树其节点总数为2^(k)-1,这个很好算,联想二进制求和...

2019-01-09 15:43:00 296

原创 单调栈

"""题目: 给一个数组,返回一个大小相同的数组。返回的数组的第i个位置的值应当是,对于原数组中的第i个元素,至少往右走多少步,才能遇到一个比自己大的元素(如果之后没有比自己大的元素,或者已经是最后一个元素,则在返回数组的对应位置放上-1)。"""def monotonousStack(nums): ans = [-1]*len(nums) stack = []...

2019-01-09 15:42:06 206

原创 ❗️❗️❗️LeetCode Hard 84 最大直方图矩形面积 Python

def largestRectangleArea( height): """ Disscussion Method 算法:单调栈 思路: 首先要明确所有可能的面积都是以某个矩形的高度为高而产生的矩形面积 目标就是在所有这些矩形高度为height的矩形面积中找到最大的那个 注意到原数组内的元素是无序的,所以不能直接用动...

2019-01-09 15:41:22 457

原创 LeetCode 152 Medium 最大子序列积 Python

def maxProduct(self, nums): """ Disscusion Method 可以根据My Method 的动规的做法来引申出这种做法,动规是将每一刻的值都记录了下来,但是事实上 都是遍历一次后,在某次遍历中给max_product赋最终结果值,所以就可以不用dp数组,相当于是O1的空间复杂度 在遍历的时候,每一刻都记录当前的...

2019-01-05 20:21:50 304

原创 LeetCode 72 Hard 最小距离 Python

def minDistance(self, word1, word2): """ Solution Method With Mine 算法:动规 思路: 首先看题目意思就能很容易地想到用动规,因为是求最小嘛 下面代码的动规状态建立的是dp[i][j],代表的是word1的第i个位置以前与word2第j个位置以前要建立 ...

2019-01-05 19:39:37 254 1

原创 LeetCode 647 Medium 回文子串个数 Python

def countSubstrings(self, s): """ MyMethod1 算法:动规 思路: 联想第5题,用动规记录和求出字符串s的所有是回文串的子字符串,然后用计数器counter技术 一样也是先从单个字符是回文的dp[i][i]= True开始记录 再到两个字符dp[i][i+1] = s[i]=...

2019-01-05 19:38:47 1120

原创 LeetCode 31 Medium 下一排列数 Python

def nextPermutation(self, nums): """ My Method 算法:指针+快排 思路: 首先要理解题意,这个有点头疼,把题意理解后拆分成两个部分就好做了。 题目要求的是下一个更大的排列数,如果没有下一个更大的排列数的话,就将序列升序排序 [1,2,3,5,6,4,3] --> 1...

2019-01-05 19:37:47 210

原创 LeetCode 297 Hard 序列化/反序列化 二叉树 Python

class Codec: """ Solution Method 参考答案给的解法是将二叉树DFS序列化,然后对其反序列化 这里我最关键的是每想到这样去反序列化,因为python传参是引用传参,通过这种先左后右虽然传 的都是同一个data,但是其实在左子树和右子树的建立中所看到的data是不一样的,而序列化的建立过程中 又是先左后右的,所以...

2019-01-05 19:36:28 506

原创 LeetCode 221 Medium 最大1矩形面积 Python

def maximalSquare(self, matrix): """ My Method 算法:动规 思路: 用dp[i][j]记录以matrix[i][j]为"1"矩形的右下角的矩形的最大边长 matrix[i][j] == 0 的显然dp[i][j] == 0 对matrix[i][j] == 1的来说,如果...

2019-01-05 19:35:36 599

原创 LeetCode Hard 10 正则表达式匹配 详解 Python 动规

def isMatch(self, s, p): """ Solution Method 算法:动规 思路: 动规的思路是在递归的"暴力"解法下启发的,暴力解法首先是将正则表达式匹配问题看成是比较两个字符串相互匹配 的变种问题,就从头开始一个字符一个字符的去比较,在每次递归中对特殊字符.和*进行特殊的处理和判断,在递归匹配 的过程中...

2019-01-02 12:23:59 256

原创 LeetCode 146 Hard 实现LRU算法 2种解法 Python

""" My Method 算法:双向链表+字典 思路: 首先一定要回顾一下LRU算法,其实就是一个优先队列,最近使用过的在队尾,时间久的在队头,该队列 是有长度限制的,超出长度后最久未访问的元素出队列,类似于一种先进先出。然后访问元素的时候,要将 该元素设为最近访问过的元素 我这里就设队头代表最近最久未访问,队列尾代表最近...

2018-12-31 14:55:13 697 1

原创 LeetCode Medium 56 合并间隔 Python

def merge(self, intervals): """ 算法:先排序,再merge MD,坑爹,interval居然是个对象,而不是题目中给出的样例那样的[1,2][3,4]

2018-12-30 15:49:05 209

原创 LeetCode 75 Medium 颜色排序 Python

def sortColors( nums): """ 算法:类似三路快排的多指针法 思路: 其实比较容易联想到用类似于三路快排的做法,其实只看题意的话也应该联想到用类似于快排的做法 因为就是对0,1,2进行排序嘛, 0,1,2以1做为pivot分割的话正好就是小于1的是一撮,大于1的是一撮,也就是0,1,2的排序 ...

2018-12-30 15:48:17 191

空空如也

空空如也

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

TA关注的人

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