自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode 第57题插入区间

leetcode 第57题插入区间问题分析问题如下(传送门)这里要将newInerval插入到intervals中,并保持给定的顺序,此外,还可能会涉及到区间的合并。我们将问题简单化,被插入的序列有两个数,每个数在待插入序列中的位置只会存在两种情况,即在某个区间内,或在区间之外,所以整个问题只会在下面四种情况之一:左操作数是否在区间内右操作数是否在区间内11100100先把这四种情况放到一边,再来看看,将newInerval插入后,它的左右值是

2022-05-04 23:17:25 344

原创 git配置

git配置以及连接github最近换了台新电脑,所以得重新下载git以及进行相关的配置,但是由于距离上一次安装和配置git的时间太长了,所以突然发现无从下手。打开之前参考的博客以及上网排除问题后,最终还是配置好并把项目上传到github上了,特意写个帖子,防止自己下次再遇到此情况时又变的手足无措。1、下载安装git和登录GitHub首先,在本机安装git,可以在这里下载,然后下载好后直接点击安装,如果不出意外的话会安装好git bash以及git GUI。git bash为命令行模式,一般用的比较多。

2020-07-01 18:37:02 150

原创 leetcode 第399题 除法求值

leetcode 第399题 除法求值问题分析问题如下(传送门)题目给了一组方程式,每个方程式有两个变量,分别为被除数和除数,最后的商在对应位置的方程式结果中。最后求的就是在问题方程式中解出每个方程。这个题目可以用并查集的方法来解决,我们可以将具有联系的所有变量归类到同一个集合中,在一个集合中,任意两个变量直接的关系都可以得到,所有只要问题方程式中的两个变量在同一个集合就能很方便的得到两者...

2019-06-06 14:33:24 461

原创 leetcode 第297题 二叉树的序列化与反序列化

leetcode 第297题 二叉树的序列化与反序列化题目分析题目(传送门)如下:题目的意思是让设计一个类,类中的一个方法能够将数转化成字符串,另一个方法就是将生成的字符串复原成树。类似的题目还有449. 序列化和反序列化二叉搜索树 。不过第449题好做一点,因为是二叉搜索树,所以我们可以先得到中序遍历得结果,然后将中序遍历排序就可以得到先序遍历结果,最后就可以根据先序遍历和中序遍历复原二...

2019-06-05 19:06:01 205

原创 leetcode 第215题 数组中的第K个最大元素(双解法—快速排序和堆排序)

第215题 数组中的第K个最大元素(双解法—快速排序和堆排序)问题分析

2019-05-24 13:02:48 312

原创 剑指offer---二进制中1的个数

剑指offer—二进制中1的个数问题分析本题是为了求解一个整数的二进制中1的个数。比如9(1001),它的二进制数就有两个1。这类的题目大部分都会用到位运算的知识,位运算非常抽象,而且在日常的生活中很少碰到,但是位运算的核心很简单,因为位运算的种类就那么几个(或、与、非、异或、左移和右移),所以只要将这些基本的操作熟记于心,这类的题目就好做了。回到上面这题。第一种解法就是不断的将这个数进行...

2019-03-05 12:41:39 218

原创 leetcode 第907题 子数组的最小值之和 python解法

leetcode 第907题 子数组的最小值之和 python解法问题分析问题如下(传送门),题目的意思是将数组所有的连续子数组找到,然后将所有子数组中的最小值找到并求和。最简单的方法就是找到所有的子数组,然后得到最小值和。但这样最后肯定会超时的,不予考虑。题目的提示是用栈来做这个题目,所以先往这方向上想。进一步分析,假设从数组的头部遍历,如果后面的数大于前面的数。那么这两个数构成的子数...

2019-03-03 19:27:37 592

原创 利用PyCharm建立虚拟环境并安装第三方库

利用PyCharm建立虚拟环境并安装第三方库最近在学利用Python操作MySQL数据库,在这过程中需要装各种各样的第三方库。之前在装别的包的时候踩了很多坑,然而这次有了经验之后完成的很快。首先我这里用的时PyCharm,因为我是学生所以有机会使用一年免费的专业版,如果你还是在校的学生并且有学校的邮箱时,可以使用它去注册PyCharm(其实学生邮箱非常有用,很多软件都会有免费的试用期)。我...

2019-03-01 11:03:53 5142 2

原创 剑指offer---二位数组中的查找

剑指offer—二位数组中的查找问题分析这一类题目的要求在给定的二维数组中判断给定的数是否存在,不存在就返回False。这些二维数组有一定的规律性,比如每一行和每一列都是递增的等等,所以在遇到二维数组或多维数组时,先看看数组是否具有一定的规律性。下面,介绍几种比较常用的方法。首先,最直接的方法,就是暴力求解,用这种方法最后的时间复杂度为O(MN)(M为行数,N为列数),效率是最慢的,所以这...

2019-02-25 20:06:03 228

原创 leetcode 第892题 三维形体的表面积 python解法

leetcode 第892题 三维形体的表面积 python解法问题分析第892题具体内容如下:题目描述很简洁,就是去求空间中由多个立方体构成的结构的总表面积,这个题目比较麻烦的一点就是如果相邻位置有立方体存在的话,那么这么立方体的侧面积就会有一部分被掩盖,所以在考虑每个位置立方体表面时一定要注意相邻位置的立方体情况。我的做法是将每行和每列单独拿出来观测,假设所给的二维数组如下:以第...

2019-02-21 19:31:34 412

原创 leetcode 第924题 尽量减少恶意软件的传播 python解法

leetcode 第924题 尽量减少恶意软件的传播 python解法问题分析最近在看并查集的概念,而leetcode第924题是一道可以用这种方法来解答的(不排除其它的方法)。具体如下:并查集的概念最主要的就是将相互关联的对象连接起来,作为一个大的集合。而本题就可以将相互连接的节点放到同一个集合中,在这个集合中,只要有一个节点被病毒感染,那么集合中的其它节点也全部被感染。此外,还有一个...

2019-02-20 21:03:50 573

原创 leetcode 第198题 打家劫舍, 第213题 打家劫舍 II , 第337题 打家劫舍 III(Python解法)

leetcode 第198题 打家劫舍, 第213题 打家劫舍 II , 第337题 打家劫舍 III(Python解法)Leetcode中最聪明的小偷—做程序员不如做小偷!问题分析198题 打家劫舍第一题比较简单,具体如下:首先该题可以看成是一个动态规划的问题,即从一个很小的范围开始求解,慢慢扩大到n个房子。由于不能偷连续的两家,所以其状态转移方程可以写为:dp[n] += ma...

2019-02-18 18:49:21 417

原创 leetcode 第698题 划分为k个相等的子集 python解法

leetcode 第698题 划分为k个相等的子集 python解法最近在刷之前没有解决的题,我觉得挺难的,加上过年在家,日子安逸,所以这道题写了很长时间。╮(╯▽╰)╭问题分析这道题首先从字面上看,如果能将给定的数组划分k个相等的子集,那么这个数组的和一定能被k整除,所以这是第一个条件;另外,如果数组中最大的数大于整除后的商,那么这个数组也不满足,这是第二个条件,这两个条件可以放在前面作...

2019-02-11 23:32:54 740 1

原创 leetcode 第141题 环形链表, 第142题 环形链表 II , 第287题 寻找重复数(Python解法)

leetcode 第141题 环形链表, 第142题 环形链表 II , 第287题 寻找重复数(Python解法)今天的前两题是关于环形链表的,第三题是要找出数组中出现的重复数字,乍一看和前两题无关,但是最后也用到了环形链表的知识,只是这里的着手点比较隐蔽。问题分析141题 环形链表先看141题,141题是给出一个链表,然后判断该链表是否是一个循环链表,如果是返回True,如果不是返回F...

2019-02-09 15:06:03 264

原创 leetcode 第713题 乘积小于K的子数组 python解法

leetcode 第713题 乘积小于K的子数组 python解法题目解析开始拿到这个题目的时候,我首先想到的是用动态规划来求解,建立一个二位数组dp,其中dp[i][j]代表的是数组中下标为i到j所有的数累乘的结果,状态转移方程也比较好些,两层循环。外层循环遍历整个数组,内层循环遍历外层循环的值到数组最后一位的所有值。dp[i][j] = dp[i][j-1] * nums[j] (j为内...

2019-02-03 13:00:41 514

原创 leetcode 第144题 二叉树的前序遍历, 第94题二叉树的中序遍历, 第145题 二叉树的后序遍历

leetcode 第144题 二叉树的前序遍历, 第94题二叉树的中序遍历, 第145题 二叉树的后序遍历问题分析这三道题目都是关于二叉树深度优先遍历的题目,我们在学数据结构时都会接触到这个题目,不过用的都是递归的方法。递归的方法思路简单,代码简洁。但是这三道题要求最好不用递归而用迭代的方法。用迭代法去解递归的题目往往会复杂一点,这里我们可以用栈来模拟递归的过程,从而去解题(栈和递归的本质是一...

2019-02-01 20:42:41 216

原创 leetcode 第386题 字典序排数 python解法

leetcode 第386题 字典序排数 python解法问题分析先看题目:题目要求将整数按照字典序排序,一看到这个我先想到了字符串是按照字典序排序的。所以,先想的方法是先将所有的整数存到数组,然后全部转为字符串。接着对字符串数组进行排序,最后将字符串转为整形数组。这种方法思路很简单,而且容易写。但是这里用到了字符串的排序,所以有点投机取巧。另外,该方法的时间复杂度大于O(n)。另一种方法...

2019-01-30 16:38:21 775

原创 leetcode 第152题 乘积最大子序列 python解法

leetcode 第152题 乘积最大子序列 python解法问题分析题目的要求是在一个整数数组中找到乘积最大的一个连续子序列,数组里的数可正可负可零。首先用一个具体的例子来讲解一下我的思路,假设所给的数组如下:[2, -1, 4, -2, -3, 0, 1, 2]先定义最大的数为数组的第一个元素,即2,并设置当前数为1。然后从左向右遍历,在没有遇到零之前,将遍历的数不管是正数还是负数...

2019-01-19 20:00:32 573

原创 leetcode 第75题 颜色分类 python解法

leetcode 第75题 颜色分类 python解法问题分析先看题目其实题目的要求很简单,就是将一个仅包含0,1,2的数组进行排序,但是更高的要求时只是用常数空间,以及仅用一趟扫描。所以这两个要求就禁止了大多数的排序算法。好在这个数组只有三个数字0,1,2,也就是说排序后,数组的前面肯定都是0,后面都是2,中间都是1,这一点时可以确定的。那么就有这样一种思路,就是遍历数组,如果是0,就...

2019-01-12 17:38:56 321 1

原创 leetcode 第102题 二叉树的层次遍历, 第103题二叉树的锯齿形层次遍历, 第107题 二叉树的层次遍历 II

leetcode 第102题 二叉树的层次遍历, 第103题二叉树的锯齿形层次遍历, 第107题 二叉树的层次遍历 II问题分析这三道题都考察的都是二叉树的广度优先遍历,二叉树的广度优先遍历非常明显,就是按照顺序输出每一层的节点。这三题都是一个套路,同一种方法只要做一点修改就行了。102 题 二叉树的层次遍历这一题是为了按照顺序输出给定二叉树的每一层节点的值,其中每一层的值作为一个数组。具...

2019-01-10 18:44:25 286

原创 leetcode 第62题 不同路径, 第63题 不同路径 II, 第64题,最小路径和(python解法)

leetcode 第62题 不同路径, 第63题 不同路径 II, 第64题,最小路径和 (python解法)问题解析最近在写动态规划的题目,刷题时看到这三道题,觉得很有意思。这三题的内容基本差不多,可以看成时迷宫问题(但是要简单的多,因为可以移动的方向只有两个,向下或向右),所以用动态规划解比较方便。第62题: 不同路径它给定两个整数代表移动网格的大小,所以我们可以先利用生成一个与网格大...

2019-01-05 15:50:00 319

原创 关于IPv4首部标识和片偏移的一点理解

关于IPv4首部标识和片偏移的一点理解最近在看《图解TCP/IP》这本书,看到IPv4首部字段时,对于首部字段中标识和片偏移的概念有的摸不着头脑,后来自己在网上查阅了一些资料,也看了很多博客,目前有一个浅显的认识。首先IP包最大的长度为65535(2^16)字节,但是传输信号的数据链路的最大传输单元(MTU)不相同,下图数不同数据链路的MTU(图来自《图解TCP/IP》)。所以,IP包在传...

2019-01-03 20:22:18 9189 3

原创 leetcode 第877题 石子游戏 python解法(用时420ms)

leetcode 第877题 石子游戏 python解法(用时420ms)该题是典型的双人回合制博弈游戏,两个人轮流从石子堆中拿出石子,其中石子都是按行一行行排好的,每个回合只能从头或者尾拿出一行石子。石子排列的行数是偶数,而且石子的总数是奇数,这样说明到最后不会出现平局。问题分析动态规划这题本意是要求使用动态规划,动态规划最重要的是要写出状态转移方程。假设在某个状态时石子的排列为[2,4...

2018-12-27 13:07:05 664 3

原创 leetcode 第78题 子集 python解法(用时48ms)

leetcode 第78题 子集 python解法(用时48ms)问题分析该问题要求返回数组的所有子集,一个数组子集的个数等于2的数组长度次幂(2^(len(nums))。首先这道题有多种解法:有使用深度优先遍历来做的,还有使用递归法来做,还有一种解法是使用位运算来计算。比如,数组[1,2,3]的长度为3,那么子集的个数就等于8,而从0到7如果分别用二进制表示就是000,001,010,011...

2018-12-22 20:28:37 291

原创 leetcode第115题 不同的子序列 python解法(用时48ms)

leetcode第115题 不同的子序列 python解法(用时28ms)该题的意思就是在一个字符串中找出与给定字符串相同的子序列的个数。例如在S= "rabbbit"这个字符串中找到与 T="rabbit"相等的子序列的个数。问题分析首先,这题最好使用动态规划(该题也被划分动态规划这一类)。动态规划时通过组合子问题的解而解决整个问题的。(算法导论第192页)。以上面的字符串为例,如果想要找...

2018-12-18 21:09:40 293

原创 leetcode 第105题(从前序与中序遍历序列构造二叉树) ,第106题(从中序与后序遍历序列构造二叉树)python解法(用时40ms)

leetcode 第105题(从前序与中序遍历序列构造二叉树) ,第106题(从中序与后序遍历序列构造二叉树)python解法(用时40ms)先从105题开始:第105题是利用前序和中序恢复二叉树,主要还是应用递归的思想。首先看一个简单的例子,在如下树中,由于前序遍历第一个数是父节点的值(1),所以将其构造成一个节点。接下来,在中序遍历中找到这个值的索引(5),那么这个索引将中序遍历分成了两...

2018-12-13 21:59:33 255

空空如也

空空如也

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

TA关注的人

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