自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python--二叉树及其七种遍历方式(递归+非递归)

对于找工作的兄弟来说,构建二叉树和七种遍历方式肯定是要求能手写的,无需解释。直接上代码吧,注释里什么都有:class Node(): # 节点类 def __init__(self, data=-1): self.data = data self.left = None self.right = Noneclass T...

2018-08-17 15:11:11 608

原创 python--lintcode12.带最小值操作的栈

描述实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。如果堆栈中没有数字则不能进行min方法的调用您在真实的面试中是否遇到过这个题?  是样例如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,...

2018-08-16 20:59:34 268

原创 python--lintcode141.x的平方根

描述实现 int sqrt(int x) 函数,计算并返回 x 的平方根。您在真实的面试中是否遇到过这个题?  是样例sqrt(3) = 1sqrt(4) = 2sqrt(5) = 2sqrt(10) = 3挑战O(log(x))所有要求时间复杂度O(log(x))的基本都是二分查找:class Solution: """ @param...

2018-08-16 20:18:07 299

原创 python--lintcode392.打劫房屋

描述假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。 这一题的思路还是比较简单的,递推公式是dp[i]=max(dp...

2018-08-16 16:40:39 302

原创 python--lintcode381.螺旋矩阵ii

描述给你一个数n生成一个包含1-n^2的螺旋形矩阵您在真实的面试中是否遇到过这个题?  是样例n = 3矩阵为[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]这一题不是很难,四个边界值,left、right、top、bottom理清楚关系就行了。代码如下:class Solution: """ @p...

2018-08-16 11:00:51 512

原创 python--lintcode115.不同的路径II

描述"不同的路径" 的跟进问题:现在考虑网格中有障碍物,那样将会有多少条不同的路径?网格中的障碍和空位置分别用 1 和 0 来表示。m 和 n 均不超过100您在真实的面试中是否遇到过这个题?是样例如下所示在3x3的网格中有一个障碍物:[ [0,0,0], [0,1,0], [0,0,0]]一共有2条不同的路径从左上角到右下角。这一题是...

2018-08-14 17:31:26 408 3

原创 python--查找数组第K大的数

这个问题应该是比较经典的,要求能在时间复杂度O(n)解决。最暴力的方法当然是先排个序,时间复杂度是O(nlogn),但是这样浪费了很多不必要的计算。O(n)的算法思想借鉴了快排的思想:快速排序每次把一个元素交换到正确的位置,同时把左边的都放上大的,右边都放上小的。这个算法每一次选取一个枢纽元,排序之后,查看枢纽元的位置。如果它的位置大于K,就说明,要求出前面一个子序列的第K大的元素。反...

2018-08-14 16:42:29 14857 6

原创 python--lintcode.最大子数组差

描述给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大。返回这个最大的差值。子数组最少包含一个数您在真实的面试中是否遇到过这个题?  是样例给出数组[1, 2, -3, 1],返回 6挑战时间复杂度为O(n),空间复杂度为O(n)这一题其实是上一题和上上题的加强版,具体请看:https://blo...

2018-08-13 16:57:45 757

原创 python--lintcode42.最大子数组II

描述给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。子数组最少包含一个数您在真实的面试中是否遇到过这个题?  是样例给出数组 [1, 3, -1, 2, -1, 2]这两个子数组分别为 [1, 3] 和 [2, -1, 2] 或者 [1, 3, -1, 2] 和 [2],它们的最大和都是 7挑战...

2018-08-13 16:19:00 523

原创 python--lintcode191.乘积最大子序列

描述找出一个序列中乘积最大的连续子序列(至少包含一个数)。您在真实的面试中是否遇到过这个题?  是样例比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。 这一题和上一题不一样,既要记录最大值,也要记录最小值,因为有负数,乘积负负得正。求前n位的乘积最大子序列的最大乘积时,的确和前n - 1位有关,但是不一定和前n - 1位的乘积最大子序...

2018-08-11 14:40:33 1364

原创 python--归并排序实现

对于一个想找工作的人来说,归并排序必须能手写出来。归并排序原理无需解释,直接给出python代码:def mergesort(num): if(len(num)==1):return num mid=len(num)//2 left=mergesort(num[:mid]) right=mergesort(num[mid:]) return mer...

2018-08-11 13:57:34 326

原创 python--快速排序实现(含代码)

对于一个想找工作的人来说,快排必须能手写出来。快排原理无需解释,直接给出python代码:def quicksort(num,low,high): if low<high: location=partition(num,low,high) quicksort(num,low,location-1) quicksort(num,...

2018-08-11 13:56:00 284

原创 python--lintcode41.最大子数组

描述给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。子数组最少包含一个数您在真实的面试中是否遇到过这个题?  是样例给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6挑战要求时间复杂度为O(n)这一题用动态规划做时间复杂度才能是O(n)。首先分析一下我们在寻找最大子段和时,子段和的特点:如果前面的...

2018-08-11 13:54:21 568

原创 python--lintcode79.最长公共子串

描述给出两个字符串,找到最长公共子串,并返回其长度。 子串的字符应该连续的出现在原字符串中,这与子序列有所不同。您在真实的面试中是否遇到过这个题?  是样例给出A=“ABCD”,B=“CBCE”,返回 2挑战O(n x m) time and memory. 这一题和上一题几乎一样,上一题见:https://blog.csdn.net/wenqiwenqi1...

2018-08-01 17:28:27 366

原创 python--lintcode77.最长公共子序列

描述给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。   您在真实的面试中是否遇到过这个题?  是说明最长公共子序列的定义:最长公共子序列问题是在一组序列(通常2个)中找到最长公共子序列(注意:不同于子串,LCS不需要是连续的子串)。该问题是典型的计算机科学问题,是文件差异比较程序的基础,在生物信息学中也有所应用。 https://en.wikip...

2018-08-01 17:05:30 363

原创 python--lintcode603.最长整除子集

描述给一个由 无重复的正整数 组成的集合,找出满足任意两个元素 (Si, Sj) 都有 Si % Sj = 0 或 Sj % Si = 0 成立的最大子集如果有多种解集,返回其中任意一个。您在真实的面试中是否遇到过这个题?  是样例给一个数组 [1,2,3],返回 [1,2] 或 [1,3]给一个数组 [1,2,4,8],返回 [1,2,4,8] 这一题的思路其实和上...

2018-08-01 16:07:11 633

原创 python--lintcode76.最长上升子序列

描述给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。您在真实的面试中是否遇到过这个题?  是说明最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。https://en.wikipedia.org/wiki/Longest_increasing_subsequence样...

2018-08-01 11:30:44 7277

空空如也

空空如也

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

TA关注的人

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