自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode--Intersection of Two Linked Lists (两个链表的交点)Python

题目:给定两个链表,求这两个链表的交点。若没有交点,则返回空。样例如下(返回交点c1):解题思路:思路1:暴力思路,n方复杂度。对两个链表分别进行遍历,找到相同的节点即可O(n*m),空间复杂度为O(1)。思路2:使用哈希表,即python中的字典。先遍历一个链表,并将链表内容放入字典。再遍历另外一个链表,看遍历到的位置是否存在于字典中,存在则返回当前结点。若遍历结束仍不存

2017-12-01 15:51:32 1773

原创 LeetCode--Minimum Path Sum (最小路径和)Python

题目:给定一个m*n的数组,数组中包含非负数,从该数组左上角到该数组右下角的最小路径和。(只能向下或者向右移动)。数组格式如下:[[1,3,1],[1,5,1],[4,2,1]]解题思路:考虑使用递归或者动态规划来解题:楼主刚开始用递归实现了一遍,发现超时了,改为动态规划后AC。故只解释动归代码:从左上角开始对数组进行遍历,将grid(数组)内容存储为走到当前位置的最短

2017-11-17 11:19:20 1742

转载 leetcode面试频率

ID 问题 频率 数据结构 算法 1 Two Sum 5 array、set sort、Two Pointers 8 String to Integer (atoi) 5 string Math 15 3Sum 5 array Two Pointers

2017-09-24 11:22:46 521

原创 使用git clone克隆项目到本地速度慢,经常断连

这里写自定义目录标题解决办法解决办法使用镜像地址:github.com.cnpmjs.org,即将项目地址中的http://github.com替换为http://github.com.cnpmjs.org如克隆https://github.com/dheeraj7596/ConWea,替换后地址为https://github.com.cnpmjs.org/dheeraj7596/ConWea,克隆速度提升超过10倍...

2020-12-16 14:20:14 569 1

转载 图解公钥与私钥

转自:https://blog.csdn.net/linuxnews/article/details/51119862 导读在学习ssh章节时,一定有不少人对公钥和私钥产生过不解。在搜索公钥跟私钥的理解时,发现了这篇有趣的图解小文章,与大家共享。1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。2. 鲍勃把公钥送给他的朋友们----帕...

2018-09-28 16:28:09 5803 3

原创 LeetCode--200.Number of Islands(孤岛个数)Python

题目:给定一个2维网格图,其中“1”(陆地)和“0”(水),计算岛屿的数量。岛屿被水包围,通过水平或垂直连接相邻的陆地形成。你可以假设网格的四边都被水包围着。例子如下图所示解题思路:从最左上角开始遍历这个网格图,当遍历到该点值为1的时候,将其更新为0,并以该点进行扩展,扩展方式为上下左右四个方向,扩展到的陆地(即值为1)将其值更新为0,直到不能扩展。再继续遍历下一个值为1点的,更新...

2018-09-09 13:27:06 4074 1

原创 计算机网络中的三次握手和四次挥手

2018-08-31 10:19:56 291

原创 剑指offer--二叉搜索树的后序遍历序列

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。解题思路:对于二叉搜索树的后续遍历结果数组,该数组的最后一个位置是该树的跟节点,则跟节点之前的所有数字可以以根节点为中心,分为左子树序列和右子树序列,且左子树中所有值都比根节点值要小。右子树则相反。若根节点之前的数字不能按上述方式切分,则该树不...

2018-08-28 13:28:41 155

原创 剑指offer--用两个栈来实现队列

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路:给定两个栈,stack1和stack2。入队列时,直接push到stack1中;出队列时,判断stack2是否为空,非空则直接pop出stack2的栈顶,否则将stack1中的所有内容顺序pop出来压入到stack2中,再pop出stack2的栈顶即可。代码:# -*- codi...

2018-08-26 08:40:16 208

原创 剑指offer--栈的压入弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路:模拟压入弹出栈的过程即可,在压入的时候判断刚压入的数字是否和输出的第一...

2018-08-21 13:58:38 173

原创 Python3使用matplotlib画图中文显示乱码的问题

解决方案:在代码里加入以下几行:import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['font.family']='sans-serif'  

2018-08-02 15:47:06 1628 2

原创 LeetCode--32. Longest Valid Parentheses(Python)

题目:给定一个只包含字符'('和')'的字符串,查找最长有效(格式良好)的括号子字符串的长度。解题思路:将有效的括号弹出,剩下的括号保留,并记录剩下的括号的位置,最后计算剩下括号位置之间的最长距离,即为为长有效括号长度。代码:class Solution(object): def longestValidParentheses(self, s): ""...

2018-08-02 12:03:21 370

转载 推荐给初学LSTM或者懂个大概却不完全懂的人

个人认为下面这篇博文非常适合初学或者学的很浅的朋友。 转自http://www.jianshu.com/p/9dc9f41f0b29经常接触LSTM,GRU,RNN这些模型,对于LSTM的印象只是知道它用来解决梯度消失梯度爆炸问题,对于长距离的句子的学习效果不好的问题,而且大概...

2018-07-17 14:22:22 2244

原创 PCA和线性回归的差别

PCA使用上图的d'来衡量投影的好坏,使得样本到直线的距离最小。线性回归使用上图中的d来衡量回归的好坏,使得f(x)-y的平方和最小。 最小二乘法(最小平方法),使得f(x)-y的平方值最小化,线性回归使用的是最小二乘法。...

2018-07-16 20:57:45 4962

原创 LeetCode--116. Populating Next Right Pointers in Each Node(填充每个节点中的下一个右指针)python

题目:给定一颗完全二叉树,填充指向下一个右节点的每个next指针。如果没有下一个右节点,则next指针应该设置为NULL。例如:解题思路:利用之前每一次构建的next指针(递归算法),对于每一个节点,先令其左孩子的next指针指向其右孩子,再判断该节点的next指针是否为空,为空,则让该节点的右孩子的next指针设置为NULL;否则将该节点的右孩子的next指针设置为该节点的next指针的左孩子,...

2018-07-11 10:57:41 300

原创 24. Swap Nodes in Pairs(成对交换链表节点)Python

题目:给定一个单链表,成对交换相邻的两个节点,并返回链表头。例如:代码:# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object...

2018-07-10 19:13:50 450

原创 拉格朗日乘子法(详细推导+思路理解)与KKT(二)

之后再综合SVM的内容详细推导,先简单记录一下结果

2018-06-22 11:32:14 1541

原创 拉格朗日乘子法(详细推导+思路理解)与KKT

只推导到拉格朗日乘子法(有等式约束优化),之后再继续推导有不等式约束优化问题(KKT)参考:https://blog.csdn.net/xianlingmao/article/details/7919597

2018-06-21 16:03:33 9931

原创 LeetCode--105. Construct Binary Tree from Preorder and Inorder Traversal(从前序遍历和中序遍历的结果重组二叉树)

题目:给定两个数组,分别是前序遍历的结果和中序遍历的结果,返回该二叉树。样例如下:解题思路:已知前序遍历的第一个值一定是跟节点,在上例中,preorder的第一个值3作为根节点,再把inorder以3为间隔分开,左边为左子树,右边为右子树。而preorder中3之后跟的先是左子树的数值,再是右子树的数值,可以根据inorder得到的左子树和右子树的长度,将preorder除根节点以外,分为左子树的...

2018-05-15 10:22:34 210

原创 LeetCode--230. Kth Smallest Element in a BST(二叉搜索树中的第k个数)

题目:给定一个二叉搜索树和一个整数k,返回二叉搜索树中的第k个值。解题思路:直接中序遍历二叉搜索树,则会返回一个有序数组,直接返回该数组的第k个值即可。代码:# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# ...

2018-05-15 09:47:25 157

原创 LeetCode--88. Merge Sorted Array(合并有序数组)python

题目:给定两个有序数组 nums1 和nums2,将nums2合并到nums1,并使nums1依然是有序数组。样例如下:解题思路:对nums2进行遍历,遍历到nums2[i]时,判断nums2[i]和nums1中的每一个数比较,若nums2[i]<nums1[j],则将nums2[i]插入到nums1的j位置,并保存j的值,再遍历到nums2[i+1]时,nums1直接从j+1位置开始即可。...

2018-05-15 09:31:45 478

原创 LeetCode--538. Convert BST to Greater Tree(将二叉搜索树转为更大的二叉搜索树)

题目:给定一棵二叉搜索树,返回一个更大的二叉搜索树。使得每一个节点的值都为之前该节点的值加上之前树中比该节点大的所有数之和。样例如下:解题思路:已知二叉搜索树的特性:对于每个节点来说,该节点的值必定大于该节点左子树的所有数,也必定小于该节点右子树的所有数。所以对该二叉搜索树进行后序遍历,并保存当前遍历过的所有节点之和,将其加到遍历到的节点上即可。代码(Python):# Definition fo...

2018-04-17 15:43:50 221

原创 LeetCode--572. Subtree of Another Tree(另一个树的子树)

题目:给定两个二叉树,s和t,判断t是否是s的一个子树。解题思路:先定义一个函数来判断s和t是否完全相同。再对s的每一个节点遍历,看s以该节点为根节点,是否和t完全相同。代码(Python):# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# se...

2018-04-17 15:23:21 340

原创 LeetCode--141. Linked List Cycle(检测链表是否有环)

题目:给定一个链表,检测该链表是否有环。有环返回True,否则返回False。解题思路:建立一个快指针和一个慢指针,快指针移动速度为慢指针的两倍,若两个指针能碰上,则说明链表有环,否则链表无环。代码:# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# ...

2018-04-11 14:05:11 162

原创 LeetCode--14. Longest Common Prefix(最长公共前缀子串)

题目:给定一个包含多个字符串的List,返回所有字符串的最长公共前缀子串。解题思路:两层遍历,比较简单,直接上代码。代码(Python):class Solution(object): def longestCommonPrefix(self, strs): """ :type strs: List[str] :rtype

2018-01-30 13:17:25 202

原创 LeetCode--621. Task Scheduler(任务安排)Python

题目:给定一串任务数组,任务用字符A-Z表示,每个字符代表一个任务。给定数字n,要求两个相同任务之间间隔至少为n,间隔期间可以安排别的任务或者等待,求出完成数组中的任务所需的最小时间间隔。(一个任务需要一个时间间隔)解题思路:先统计数组中各个任务出现的次数。优先安排次数最多的任务。次数最多的任务安排完成之后所需的时间间隔为(max(次数)-1)*(n+1)+1。其余任务直接插空即可。

2018-01-25 11:03:46 2622

原创 LeetCode--108. Convert Sorted Array to Binary Search Tree(将有序数组转为二叉搜索树)Python

题目:给定一个有序数组,将这个数组存入平衡的二叉搜索树中。解题思路:使用递归。逐个处理根节点的值、左节点和右节点。代码(Python):# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x#

2018-01-24 14:26:28 216

原创 LeetCode--438. Find All Anagrams in a String(找到所有字符组合)Python

题目:给定两个字符串s、p。找到s中和p包含相同字符的所有子串。解题思路:直接暴力搜索s,固定长度,对p和s固定长度的子串分别进行排序,看两者排序后是否相同。这样是一种方法,但会超时。另外一种方法是使用哈希的方法。用两个个1*26的list分别存储p和s子串中各个字符出现的字数,对s进行滑动窗口,保持子串长度为p的长度。这样复杂度为O(n)。代码(Python):class

2018-01-23 11:49:24 514

原创 LeetCode--4Sum II(4个数的和)Python

题目:给定四个长度为N的数组:A、B、C、D,找到A[i]+B[j]+C[k]+D[l]=0的tuple个数。解题思路:直接对四个数组进行遍历,时间复杂度为N的4次方,超时。之后想到将哈希应用到计算过程中。先将其中两个数组的和存储到字典中,再计算另外两个数组的和的相反数有没有在之前的字典中出现,出现则将最终的count数加上其出现的次数。时间复杂度为n的2次方。代码(Python)

2018-01-23 10:54:40 969

原创 LeetCode--647. Palindromic Substrings(回文字符串个数)Python

题目:给定一个字符串,计算该字符串中有多少回文子字符串。解题思路:动态规划,类似之前的一个题目,直接给链接和代码http://blog.csdn.net/xiaoxiaoley/article/details/77407263代码(Python):class Solution(object): def countSubstrings(self, s):

2018-01-22 20:19:34 1141

原创 LeetCode--242. Valid Anagram(Python)

题目:给定两个字符串,判断这两个字符串是否由相同的字符组成。若是,则返回True,否则返回False。解题思路:考虑使用哈希表来提高效率。代码(Python):class Solution(object): def isAnagram(self, s, t): """ :type s: str :type t: str :rt

2018-01-18 14:14:25 346

原创 LeetCode--328. Odd Even Linked List(奇偶链表)Python

题目:给定一个链表,将链表中奇节点放在前,偶节点放在后,返回调整后的链表。解题思路:对链表进行遍历,遍历过程中,将奇节点放在一个链表中,偶节点放在一个链表中。最后将这两个链表连接起来。代码(Python):# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):#

2018-01-18 13:57:03 336

原创 LeetCode--350. Intersection of Two Arrays II(两个数组的交集)Python

题目:给定两个数组,返回这两个数组的交集。解题思路:使用哈希表用来存储第一个数组中的内容。再遍历第二个数组,看该数组的数字是否在哈希表中,在则将该数字加入输出的列表中。代码(Python):class Solution(object): def intersect(self, nums1, nums2): """ :type nums1: List[int]

2018-01-18 13:33:01 594

原创 LeetCode--437. Path Sum III(路径和)Python

题目:给定一棵二叉树,和一个目标和sum,找到该二叉树中路径和为sum的个数。样例如下返回3,路径分别为:解题思路:从每个节点出发进行dfs读取,判断当前节点值是否等于目标值,不等则更新目标值(原目标值-当前节点值),相等则将返回值加一。代码(Python):# Definition for a binary tree node.# class TreeNode(object):# d

2018-01-18 11:33:44 593

原创 LeetCode--371. Sum of Two Integers(两个整数的和)Python

题目:给定两个整数a和b,要求不使用‘+’和‘-’,返回这两个整数的和。解题思路:由于不能使用加减符号,故考虑使用二进制数的按位与和按位或等操作,已知按位异或可以得到不考虑进位的结果a^b,按位与可以得到进位的情况a&b。所以把进位的结果左移一位,再和异或的结果相加,即可得到最终的结果。而进位左移结果和异或结果相加时,也可能产生进位。故而循环上述步骤,直到进位的结果为0时终止。代码

2018-01-16 15:41:54 565 1

原创 LeetCode--581. Shortest Unsorted Continuous Subarray(最短的无序数组长度)Python

题目:给定一串数组,找出其中的一个连续子串,将该子串按升序排序后,整个数组都是升序。返回该子串的长度。解题思路:先将该数组排序,然后统计该数组排序后和原数组内容相同的首尾部分长度,用数组总长度减去该长度即可。代码(Python):class Solution(object): def findUnsortedSubarray(self, nums): "

2018-01-15 17:00:01 379

原创 LeetCode--162. Find Peak Element(找到峰值)Python

题目:给定一个数组,返回这个数组中的其中一个峰值的位置(任意一个都行),峰值指的是比两边的数都大的值。解题思路:直接找比两边值都大的位置即可。代码(Python):class Solution(object): def findPeakElement(self, nums): """ :type nums: List[int]

2018-01-05 16:48:38 3340

原创 LeetCode--198. House Robber(打家劫舍)Python

题目:给定一个数组nums,代表每家可以打劫到的钱数,连着打劫相邻的两家会自动报警。在保证不报警的前提下,找到可以打劫到的最多钱数。解题思路:考虑使用动态规划。dp[i]表示从0-i户可以打劫到的最大钱数。则有dp[i] = max(dp[i-1],dp[i-2]+nums[i])。代码(Python):class Solution(object): def rob(s

2018-01-05 15:35:13 4273

原创 LeetCode--416. Partition Equal Subset Sum(将数组切分为两个和相等的子数组)Python

题目:给定一个数组nums(仅包含正整数),将这个数组切分为两个子数组,使得这两个子数组的和相等。若能完成上述切分,返回True,否则返回False解题思路:跟494.target sum 非常类似,该题直通车:http://blog.csdn.net/xiaoxiaoley/article/details/78968852本题思路,先进行数学分析,设子集为A、B,则有sum(

2018-01-05 14:29:18 4606

原创 LeetCode--238. Product of Array Except Self(数组除自身以外的乘积)Python

题目:给定一个包含n个数字的数组nums,n>1,返回一个数组output,其中output[i]的内容为除了nums[i]以外的nums中其他所有元素的乘积,要求不使用除号,且时间复杂度为O(n)。解题思路:由于不能使用除号,所以必须只有乘号来计算。维护两个数组dp1和dp2,分别用来保存第i个位置之前所有数的乘积和第i个位置之后所有数的乘积。代码(Python):class

2018-01-05 14:01:38 1258

空空如也

空空如也

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

TA关注的人

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