摘要:1、顺序查找: 成功时间复杂度O((n+1)/2),失败:O(n)【在顺序存储或链式存储下查找】 2、二分查找: 对半查找,必须在有序的条件下,平均时间复杂度O(log2n),失败O(log2(n+1)) 3、插值查找: 在表长较大且数据分布均匀情况下,插值查找比二分查找要好,插值就是1/4,1/5
阅读全文
摘要:1、题目 给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。 若无答案,则返回空字符串。 示例 1: 示例 2: 注意: 所有输入的字符串都只包含小写字母。 words
阅读全文
摘要:一、十大排序总结 https://www.cnblogs.com/guoyaohua/p/8600214.html总结得很好。 1、原地排序:快速排序、堆排序、插入排序、冒泡排序、希尔排序、直接选择排序 2、非原地排序:归并排序、计数排序、基数排序、桶排序 3、对有序的序列排序:冒泡、直接插入 4、
阅读全文
摘要:1、题目: 给定一个字符串s,判断其是否回文词 2、思路: 采用双端队列实现,从两边弹出字母,判断是否相同,若相同则继续,直到队列中只剩一个或者没有元素。 3、代码:
阅读全文
摘要:1、题目: N个孩子在队伍中,每个孩子都有一定的等级值,相邻两个孩子等级高的拿到的糖果数量要比等级低的多,且每个孩子至少有一个糖果,所以最少队伍一共需多少糖果。 There are N children standing in a line. Each child is assigned a rat
阅读全文
摘要:1、题目:给定一个字符串,输出所有的字典序。 如: 输入字符串:'ac',输出:['ac','ca'] 输入字符串:‘abc' ,输出:['abc','acb','bac','bca','cab','cba'] 输入字符串:‘acc',输出:['acc','cac','cca'] 2、递归: 如:'
阅读全文
摘要:1、题目: 给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。 字符 数值I 1V 5X 10L 50C 100D 500M 1000 如: 输入: "XLVIII"输出: 48解释: X= 10, L = 50,III = 3.【X在L前:XL则表示40】 2、思路: 分治
阅读全文
摘要:一、线性结构:栈、队列、双端队列、列表 二、非线性结构:树、图、堆 【算法中看堆是非线性的,因为其相当于完全二叉树,但堆的存储元素是采用线性的顺序表数组来实现的】 三、队列: 1、队列类型:FIFO、LIFO、双端队列、循环队列 FIFO:先进先出 LIFO:后进先出(相当于栈) 双端队列:LIFO
阅读全文
摘要:1、基本数据结构 整型、浮点型、字符串、元祖、列表、字典、集合 2、高级数据结构 (collections模块) (1)计数器(counter):对字典的补充,用于追踪值的出现次数。 【具备字典所有的功能+自己的功能】 1 #获取元素出现次数多的几个 2 bb = c.most_common(3)
阅读全文
摘要:1、sorted(排序对象,key=):排序对象可以是类别,也可以是字符串和字典,key为自定义排序,如:【key=abs,按绝对值排序】【key=lambda x:x[1],按排序对象的第二个值排序,若为二维数组,第二维排,若为字典则按值排】 ①sorted(排序对象,key=abs): 数值:k
阅读全文
摘要:1、常见的分类算法主要有: (1)KNN算法 (2)贝叶斯方法 (3)决策树 (4)人工神经网络 (5)支持向量机(SVM) 2、KNN算法 (1)KNN应用场景: 比方说样本中有很多零食、很多电器、很多服装,给一个未知样本,把样本归于哪一类?就可以用KNN算法。分别计算未知样本和已知的每个样本之间
阅读全文
摘要:题目: Given a string of numbers and operators, return all possible results from computing all the different possible ways to group numbers and operators
阅读全文
摘要:题目: 编写一个高效的算法来搜索 m x n 矩阵中的一个目标值。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 例如, 考虑下面的矩阵: 给定目标值 target = 5, 返回 true。 给定目标值 target = 20, 返回 false。 解法1:时间复
阅读全文
摘要:1、题目: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。 请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。 2、法1:归并排序 nums1的最后一个数和nums2的最后一个数对比。如果nums1的值大,将该值存入新的结果数组中,并将nums
阅读全文
摘要:给定一个整数数列,找出其中和为特定值的那两个数。 你可以假设每个输入都只会有一种答案,同样的元素不能被重用。 示例: 别人的代码:(时间复杂度为n) 用字典的key,value来存储两个值,其中key用来存储nums的值,value用来存储nums的索引。
阅读全文
摘要:题目: X,Y,Z三个整数,若干次操作让X,Y,Z变为相等,每次操作有两种操作可选: 操作1:从X,Y,Z中选择两个数,都加1 操作2:从X,Y,Z选择一个数,加2 计算最少需要多少次操作令X,Y,Z变为相等。 输入:三个整数A,B,C(0<=A,B,C<=100) 输出:一个整数表示最少需要的操作
阅读全文
摘要:题目: 对于字符串a和b,如果移除字符串a中的一些字母(可以全部移除,也可以一个都不移除)就能够得到字符串b,则b为a的子序列。例如,‘heo'为'hello'的子序列,’le'不是。 对于给定的一个字符串s,请计算出s的字典序最大的子序列。 输入:输入包括一行,一个字符串s,字符串s长度lengt
阅读全文
摘要:题目: 给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。 例如,给定序列 [-2,1,-3,4,-1,2,1,-5,4], 连续子序列 [4,-1,2,1] 的和最大,为 6。 思路1:贪心法【时间复杂度为O(n2)】 设置两个最大标记:subSum = ma
阅读全文
摘要:1、背景: 变位词指的是一个单词可以通过改变其他单词中字母的顺序来得到,也叫做兄弟单词,如army->mary。 题1:判断两个字符串s1和s2是否为变位词。 经典的字符串变位词检测问题是比较不同数量级函数算法的一个典型例子。如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词。
阅读全文
摘要:线性回归的总结:https://www.cnblogs.com/pinard/p/6004041.html 一、线性回归:hθ(x(i))=θ0+θ1x(i) ,x(i) ,y(i) 为观察样本值,hθ(x(i))为预测的y(i) 的值。θ为参数 可以用最小二乘法来求解线性回归:最小二乘法:其目标函
阅读全文
摘要:1、import jieba jieba的cut函数有三个模式:全模式、精准模式、搜索引擎模式 1 精确模式,试图将句子最精确地切开,适合文本分析; 2 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 3 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率
阅读全文
摘要:上面图表示浅复制和深复制,针对顶层对象来说,赋值为引用,浅复制和深复制都是复制一个新的对象。 针对子对象来说,浅复制为引用、深复制就是复制两个一样的。 1、赋值 A= [ 1,2,3, [ 'a','b '] ] B=A 则 id ( A ) = id ( B )【因为A、B同时指向同一个对象】)
阅读全文
摘要:1、下载whl文件 网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboost 选择合适自己的环境的下载,比如python3.6还是3.5的,64位机子还是32位机子。 我下载的是xgboost‑0.7‑cp36‑cp36m‑win_amd64.wh
阅读全文