计算机
少儿西笑
自然语言处理工程师
展开
-
每天一道算法题(2020.06.18)- 电话号码的字母组合
题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。思路应用回溯法,回溯是一种通过穷举所有可能情况来找到所有解的算法。代码 def letter_combinations(digits):原创 2020-06-18 17:00:46 · 488 阅读 · 0 评论 -
每天一道算法题(2020.06.09)-最多盛水容器
题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。示例输入:[1,8,6,2,5,4,8,3,7]输出:49思路算法流程: 设置双指针 i,j分别位于容器壁(数组)两端,根据规则移动指针,并且持续更新面积最大值 res,直到 i == j 时返回原创 2020-06-09 16:52:12 · 193 阅读 · 0 评论 -
每天一道算法题(2020.06.04)-正则匹配
题目描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s =原创 2020-06-04 16:06:10 · 184 阅读 · 0 评论 -
几个优质的教育开源框架
PHET通过动画模拟知识点网址:https://phet.colorado.edu/zh_CN/simulations/category/math开源相关技术人员:js潜在用途:可获取其中关于数学的知识点动画演示Crab项目地址:http://geektell.com/story/crab-recommender-systems-in-python/图片: https://uploader.shimo.im/f/K7JojvOUWqM1AAlc.png系统的Tutorial可以看这里:原创 2020-06-04 11:32:53 · 500 阅读 · 0 评论 -
GIT代码合作开发
Git常用概念仓库(Repositories):类似我们生活中的仓库,存储东西,在这是网络或者本地实际存放代码的地方,同一个仓库可存多个项目。参照(References):可以看做是指向文件块中特定代码版本的指针,可沿代码版本有向图进行向前(一般指提交操作Commit),向后(一般是恢复操作Restore), 跳转(不同分支间的切换Switch)。分支(Branch):一般是为了进行代码调试或概念开发,从主要的开发版本中分离出一个副版本,并在此基础上进行修改,(实际中我们可以分离出来进行各自的模块开发原创 2020-06-04 10:56:48 · 377 阅读 · 0 评论 -
numpy基本练习(三)
# translation of typez = np.arange(10,dtype=np.int32)print(z.dtype)z = z.astype(np.float32)print(z.dtype)# print index and elementz = np.arange(9).reshape(3,3)for index,value in np.ndenumerate...原创 2019-11-20 20:07:39 · 181 阅读 · 0 评论 -
numpy基本练习(二)
# constitute a matrix of (6,7,8), find the index of 100th elementprint(np.unravel_index(100,(6,7,8)))# normalizationhu_array = np.random.random((5,5))hu_max = hu_array.max()hu_min = hu_array.min...原创 2019-11-20 19:32:19 · 151 阅读 · 0 评论 -
numpy基本练习(一)
import numpy as np# print version of numpyprint(np.__version__)# constitute a matrix of zeros and print its sizez = np.zeros((5, 5))print("%d bytes"%(z.size * z.itemsize))# print the help fil...原创 2019-11-20 19:15:58 · 192 阅读 · 0 评论 -
一个文本纠错的小例子
文本纠错又称为拼写错误或者拼写检查,由于纯文本往往来源于手打或者OCR识别,很可能存在一些错误,因此此技术也是一大关键的文本预处理过程,一般存在两大纠错类型。Non-word拼写错误第一种是Non-word拼写错误,表示此词汇本身在字典中不存在,比如把“要求”误写为“药求”,把“correction”误拼写为“corrction”。操作步骤:这类问题的解决思路可分为两个步骤,首先找到字典中...原创 2019-11-15 16:31:32 · 1439 阅读 · 0 评论 -
每天一道算法题(2019.3.5)
Q:给定一个序列,求最大子序列思路1: 暴力求解法:把所有可能的子序列列出来作比较,利用双层循环,复杂度为O(n^2)。def maxSubArray(list): res = list[0] for i in range(length(list)):#the start index of subArray maxTmp = 0 for j in range(i, length(l...原创 2019-03-05 17:36:54 · 164 阅读 · 0 评论 -
模型的评估
一些基本概念:错误率:如果在m个样本中有a个样本分类错误,那么错误率=a/m精度:1-错误率误差:实际预测输出与样本的真实输出之间的差异训练误差/经验误差:学习器在训练集上的误差,在很多情况下,我们都可以学得一个经验误差很小,在训练集上表现很好的学习器泛化误差:在新样本上的误差,我们希望得到的是一个泛化误差很小的学习器,但这点不能通过训练误差来保证过拟合:训练误差很小但是泛化误差很...原创 2019-02-20 17:15:11 · 177 阅读 · 0 评论 -
监督学习
Q:监督学习的流程是什么样的?监督学习过程图示:首先我们需要带有标签的数据,接着,通过特征工程来提取特征形成特征向量。然后,我们会选择模型,相当于选择某一个目标函数,那有了一个目标之后,就可以使用优化算法来优化目标函数。这些算法一般都可以调用工具来使用。这样我们便得到了一个预测结果。如果预测结果不好怎么办呢?我们会从头开始,在每一个部分都作一些调节,一般我们算法工程师做的事情就是循环过程。其中...原创 2019-02-19 21:29:08 · 1283 阅读 · 0 评论 -
每天一道算法题(2019.1.10)
问题:给定不同面额的硬币(coins)和一个总金额(amount)。写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合方式能组成总金额,返回-1。示例 1:coins = [1, 2, 5], amount = 11return 3 (11 = 5 + 5 + 1)示例 2:coins = [2], amount = 3return -1注: 每种硬币的数...原创 2019-01-10 22:31:48 · 266 阅读 · 2 评论 -
快速排序变种
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组...原创 2019-01-14 15:50:40 · 266 阅读 · 0 评论 -
python 单元测试
Python中有一个自带的单元测试框架是unittest模块,即单元测试,它里面封装了一些校验返回的结果方法和一些用例执行前的初始化操作。相关概念:TestCase: 也就是测试用例TestSuite: 多个测试用例集合在一起,就是TestSuiteTestLoader:加载TestCase到TestSuite中TestRunner:执行测试用例, 测试的结果会保存到TestResult...原创 2019-01-14 16:25:40 · 138 阅读 · 0 评论 -
归并排序
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;注意要先使每个子序列有序,再使子序列段间有序。例如:有数列{6,202,100,301,38,8,1}初始状态:6,202,100,301,38,8,1第一次归并后:{6,202},{100,301...原创 2019-02-18 09:31:45 · 100 阅读 · 0 评论 -
每天一道算法题(2019.2.24)
Q: 假设我们有binary search tree (BST), 请写出search, insert, printOrder, printMax 函数二叉搜索树(BST)基本特性:所有非叶子结点至多拥有两个儿子(Left和Right)所有结点存储一个关键字非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树python 代码:class Node(): def...原创 2019-02-24 12:45:09 · 177 阅读 · 0 评论 -
求平方根
Q:对于给定的整数 n >0, 请求出它的平⽅方根(sqrt(n)), 保留留⼩小数点后⼀一位,不不要使⽤用任何built-in function。思路1: 用二分法求,每次取中间值,查看中间值的平方与给定整数的大小,如果差值小于0.1, 则停止计算。python代码:def sqrt1(n): if n<0: return -1 low = 0 high = n m...原创 2019-02-19 10:15:40 · 435 阅读 · 0 评论 -
array和linked list的区别
Q:array和linked list在数据结构中的区别是什什么?在查找,删除,增加操作中的复杂度分别是多少?ArrayList和LinkedList都实现了List接口,他们有以下的不同点:LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。ArrayList是基于索引的数据接口,它的底层是数...原创 2019-02-19 13:55:32 · 3824 阅读 · 0 评论 -
overflow and underflow
Q: 什么叫underflow, 什么叫overflow? 对于很多的AI问题,如果出现很多概率的相乘,我们通常都在最前面加log, 为什么? ⽐如 argmax p(x), 通常求解 argmax log p(x)。 对于softmax 函数,我们去实现的时候怎么避免underflow 或者 overflow?首先,实数在计算机内用二进制表示,所以不是一个精确值,当数值过小的时候,被四舍五入为...原创 2019-02-19 20:56:40 · 1465 阅读 · 0 评论 -
进程和线程的区别
作者:zhonyong链接:https://www.zhihu.com/question/25532384/answer/81152571来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。首先来一句概括的总论:进程和线程都是一个时间段的描述,是CPU工作时间段的描述。下面细说背景:CPU+RAM+各种资源(比如显卡,光驱,键盘,GPS, 等等外设)构成我们的...转载 2018-12-27 16:43:25 · 108 阅读 · 0 评论