
排序算法
文章平均质量分 91
one_zero_one
这个作者很懒,什么都没留下…
展开
-
十大排序算法(Python实现)
十大排序算法(Python实现)十种常见排序算法可以分为两大类非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳...原创 2019-06-17 11:19:15 · 1215 阅读 · 1 评论 -
网易2018笔试---01串
如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: "1","10101","0101010"都是交错01串。小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。输入描述:输入包括字符串s,s的长度length(1 ≤ length ≤ 50),字符串中只包含'...原创 2019-08-03 10:48:46 · 211 阅读 · 0 评论 -
孩子们的游戏(圆圈中最后剩下的数)
每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下...原创 2019-07-30 21:59:17 · 80 阅读 · 0 评论 -
字符串处理
一请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。class Solution: # s字符串 def isNumeric(self, s): # write c...原创 2019-07-31 09:07:09 · 100 阅读 · 0 评论 -
蛇行矩阵
一顺时针打印矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.# -*- coding:utf-8 -*-class Solution: # matrix类...原创 2019-07-26 11:10:59 · 256 阅读 · 0 评论 -
深信服2019春招笔试----查找重复序列
已知某序列S=<e1,e2,…,en>,序列中的元素类型为整数(en <= 2^10),序列的长度为可变长度。现在有若干序列S1,S2,…,Sn,现在要求设计一种算法,找出这些重复的序列。输出重复序列的序号,如果有多组重复,需全部输出。所有序列中的数字个数加起来,小于1000000,序列个数小于10000个。例如现有3个序列S1=<65,43,177,655>...原创 2019-08-04 14:12:57 · 944 阅读 · 0 评论 -
深信服2019春招笔试---子串模糊匹配
从字符串string开始完整匹配子串sub,返回匹配到的字符个数。sub中如果出现'?'表示可以匹配一到三个除'\0'以外的任意字符。如果sub还有找不到匹配的字符,则说明不能完整匹配。如果能完整匹配,返回匹配到的字符个数,如果有多种匹配方式,返回匹配字符数最少的那个,如果不能完整匹配,返回-1输入描述:第一行输入字符串string,长度小于10000第二行输入子串sub,长度...原创 2019-08-04 15:30:55 · 719 阅读 · 0 评论 -
最长上升子序列
一题目给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。动态规划: /** dp[i]: 所有长度为i+1的递增子序列中, 最小的那个序列尾数. 由定义知dp数组必然是一个递增数组, 可以用 maxL ...原创 2019-08-05 08:53:54 · 148 阅读 · 0 评论 -
算法基本概念
一什么是算法:解决问题的策略机制,重要的是思想求满足a+b+c=1000,a^2+b^2=c^2 条件的所有a,b,c思路:枚举法,以下被注释掉的语句就是枚举每个满足条件的a,b,c,但是这段语句的算法复杂度太大改进:a,b的值就确定了c的值,故 改进算法如下import timestart_time=time.time()# for a in range(0,10...原创 2019-07-28 17:07:55 · 160 阅读 · 0 评论 -
网易笔试题---小易的字典
一题目解答:排列组合,n个'a'和m个'z',能组成(m+n)!/(m!)/(n!)个单词思路:假设第一个字符为a,则剩下n-1个'a'和m个'z'组成的子序列只能构成(m+n-1)!/(m!)/(n-1!)个单词,且是字典中前(m+n-1)!/(m!)/(n-1!)个单词。 比较k和(m+n-1)!/(m!)/(n-1!),若k小,说明k是前(m+n-1)!/(m!)/(...原创 2019-08-02 11:29:21 · 397 阅读 · 0 评论 -
剑指offer--左旋转字符串
一题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!# -*- coding:utf-8 -*-class Solution: de...原创 2019-08-08 22:06:10 · 83 阅读 · 0 评论 -
剑指offer---替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。# -*- coding:utf-8 -*-class Solution: # s 源字符串 def replaceSpace(self, s): t=s.replace(' ','%20'...原创 2019-08-09 21:07:58 · 255 阅读 · 0 评论 -
网易2019笔试---瞌睡
小易觉得高数课太无聊了,决定睡觉。不过他对课上的一些内容挺感兴趣,所以希望你在老师讲到有趣的部分的时候叫醒他一下。你知道了小易对一堂课每分钟知识点的感兴趣程度,并以分数量化,以及他在这堂课上每分钟是否会睡着,你可以叫醒他一次,这会使得他在接下来的k分钟内保持清醒。你需要选择一种方案最大化小易这堂课听到的知识点分值。输入描述:第一行 n, k (1 <= n, k <= ...原创 2019-08-03 09:22:37 · 111 阅读 · 0 评论 -
网易2018测试工程师--------- 独立的小易
小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。输入描述:输入包括一行,四个整数x...原创 2019-08-02 21:15:02 · 140 阅读 · 0 评论 -
网易笔试-----表达式求值
今天上课,老师教了小易怎么计算加法和乘法,乘法的优先级大于加法,但是如果一个运算加了括号,那么它的优先级是最高的。例如: 1 2 3 4 1+2*3=7 1*(2+3)=5 1*2*3=6 (1+2)*3=9 现在小易希望你帮他计算给定3个数a,b,c,在它们中间添加"+", "*", "(", ")"符号...原创 2019-08-02 17:17:35 · 686 阅读 · 0 评论 -
剑指offer 19 顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.def ff(matrix): # write code here res = [] while ...原创 2019-07-18 15:10:21 · 105 阅读 · 0 评论 -
剑指offer 20 包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。# -*- coding:utf-8 -*-# 思路:用一个栈stack保存数据,用另外一个栈min_stack保存依次入栈最小的数# 比如,stack中依次入栈,5, 4, 3, 8, 10, 11, 12, 1# 则min_stack依次入栈,5, 4, 3,no, no, no,...原创 2019-07-18 15:37:52 · 84 阅读 · 0 评论 -
剑指offer11-15
11输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。# -*- coding:utf-8 -*-class Solution: def NumberOf1(self, n): # write code here# count = 0# while (n & 0xffffffff) != 0:# count += 1# ...原创 2019-07-18 15:41:41 · 60 阅读 · 0 评论 -
剑指offer16-18
16输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回合并后列表...原创 2019-07-18 15:44:45 · 81 阅读 · 0 评论 -
匈牙利算法
1 匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法2代码# 判断素数def issu(x): tem = 2 while tem ** 2 <= x: if x % tem == 0: return False tem += 1 return True#匈牙利算法def find(...原创 2019-07-16 18:42:04 · 323 阅读 · 0 评论 -
杨辉三角 python
首先可以观察到,第一行为[1],我们直接赋给一个变量:初始化数列 p = [1]其次我们观察到,下面的每一行的开头结尾都是[1],那么我们可以推导出每一行的规律为:[1]+.........+[1]那么我们发现,从第三行开始中间的 [2],第四行中间的 [3,3],第五行中间的 [4,6,4] 等等以此类推才是我们需要推导的部分第一行:[1] 设 p = [1]第二行:[1]+[1...原创 2019-07-19 14:04:49 · 389 阅读 · 0 评论 -
剑指offer21-22栈与树
21输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)# -*- coding:utf-8 -*-class Solution: d...原创 2019-07-19 14:08:24 · 125 阅读 · 0 评论 -
剑指offer1-5题
1在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。# -*- coding:utf-8 -*-class Solution: # array 二维列表 def Find(self, target, array): ...原创 2019-07-17 14:11:46 · 131 阅读 · 0 评论 -
剑指offer6-10
6把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。# -*- coding:utf-8 -*-#非递减数组旋转之后最小值,也就是寻找分界点,分界点前后都是非递减数...原创 2019-07-17 14:48:16 · 83 阅读 · 0 评论 -
网易笔试-------丰收
又到了丰收的季节,恰逢小易去牛牛的果园里游玩。牛牛常说他对整个果园的每个地方都了如指掌,小易不太相信,所以他想考考牛牛。在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往右数第x个苹果是属于哪一堆的。牛牛觉得这个问题太简单,所以希望你来替他回答。输入描述:第一行一个数n(1 <= n <= 105)。第二行n个数ai(1 <= ai<= 100...原创 2019-08-02 16:46:36 · 140 阅读 · 0 评论 -
网易笔试---俄罗斯方块
小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块。因为它比较古老,所以规则和一般的俄罗斯方块不同。荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分。有一天,小易又开了一局游戏,当玩到第 m 个方块落下时他觉得太无聊就关掉了,小易希望你告诉他这局游戏他获得的分数。输入描述:...原创 2019-08-02 16:55:46 · 298 阅读 · 0 评论 -
0-1背包问题
1、简介假设我们有n件物品,分别编号为1, 2...n。其中编号为i的物品价值为vi,它的重量为wi。为了简化问题,假定价值和重量都是整数值。现在,假设我们有一个背包,它能够承载的重量是W。现在,我们希望往包里装这些物品,使得包里装的物品价值最大化,那么我们该如何来选择装的东西呢?问题结构如下图所示:这个问题其实根据不同的情况可以归结为不同的解决方法。假定我们这里选取的物品...转载 2019-09-01 10:27:50 · 456 阅读 · 0 评论