摘要:题目原文:Implement an algorithm to find the nth to last element of a singly linked list.译文:实现一个算法从一个单链表中返回倒数第n个元素。解答这道题的考点在于我们怎么在一个单链表中找到倒数第n个元素? 由于是单链表,所以我们没办法从最后一个元素数起,然后数n个得到答案。 但这种最直观的思路显然是没错的,那我们有没有办法通过别的方式,从最后的元素数起数 n个来得到我们想要的答案呢。这个次序颠倒的思路可以让我们联想到一种数据结构:栈。我们如果遍历一遍单链表,将其中的元素压栈,然后再将元素一一出栈。那么, 第n个出栈的 阅读全文
Cracking the coding interview--Q2.1
2013-07-30 14:23 by Loull, 255 阅读, 0 推荐, 收藏,
摘要:题目原文:Write code to remove duplicates from an unsorted linked list.FOLLOW UPHow would you solve this problem if a temporary buffer is not allowed?译文:从一个未排序的链表中移除重复的项进一步地,如果不允许使用临时的缓存,你如何解决这个问题?解答如果可以使用额外的存储空间,我们就开一个数组来保存一个元素的出现情况。 对于这种情况,最好的解决方法当然是使用哈希表,但令人非常不爽的是C++标准里是没有 哈希表的(java里有)。网上有人用ext下的hash_ 阅读全文
MapReduce:详解Shuffle过程
2013-07-29 20:37 by Loull, 338 阅读, 0 推荐, 收藏,
摘要:Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这 里我尽最大的可能试着把Shuffle说清楚,让每一位想了解它原理的朋友都能有所收获。如果你对这篇文章有任何疑问或建议请留言到后面,谢谢! Shuffle的正常意思是洗牌或弄乱,可能大家更熟悉的是J.. 阅读全文
R语言编程
2013-07-22 16:46 by Loull, 772 阅读, 0 推荐, 收藏,
摘要:R中的帮助文档非常有用,其中有四种类型的帮助help(functionname) 对已经加载包所含的函数显示其帮助文档,用?号也是一样的。help.search('keyword') 对已经安装的包搜索关键词,用??号功能一样。help(package='packagename') 显示已经安装的包的描述和函数说明RSiteSearch('keyword') 在官方网站上联网搜索R语言的启动R语言启动后会首先查找有无.Rprofile文档,用户可通过编辑.Rprofile文档来自定义R启动环境,该文件可放在工作目录或安装目录中。之后R会查找在工作 阅读全文
R语言基本语法
2013-07-22 14:23 by Loull, 4202 阅读, 0 推荐, 收藏,
摘要:R语言基本语法基本数据类型数据类型向量 vector矩阵 matrix数组 array数据框 data frame因子 factor列表 list向量单个数值(标量)没有单独的数据类型,它只不过是向量的一种特例向量的元素必须属于某种模式(mode),可以整型(integer)、数值型(numeric)、字符型(character)、逻辑型(logical)、复数型(complex)循环补齐(recycle):在一定情况下自动延长向量筛选:提取向量子集向量化:对向量的每一个元素应用函数使用seq()创建向量使用rep()重复向量常数矩阵矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行 阅读全文
R语言学习笔记
2013-07-22 14:21 by Loull, 1020 阅读, 0 推荐, 收藏,
摘要:R的源起R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业 软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。一 入门训练1. 获取帮助 > help.start() 开启帮助文档 >help(solve) 显示某命令的帮助信息,或者 >?solve 对于 阅读全文
读《人工智能的未来》
2013-07-16 17:13 by Loull, 475 阅读, 0 推荐, 收藏,
摘要:《人工智能的未来》的作者是Jeff Hawkins,也就是著名的PalmPilot掌上电脑和Treo智能电话的发明人,这牛人从小就对人工智能充满兴趣并孜孜追求,哪怕从事软件业也是为 了自己的理想。就书的内容来说,很有意思。作者先批判了传统的人工智能的发展方向,并且断定传统的人工智能永远没办法造出能够与人脑相媲美的智能机器。因 为想要真正地了解智能是什么,只有去研究人脑的智能,而不能单纯地依靠程序和数学。 接下来,Jeff Hawkins系统地探讨了自己对于新大脑皮层的理论,也就是他所宣称的智能理论。所谓智能,其实就是新大脑皮层基于记忆-预测系统的系统体系。新大脑皮层由层次性的神经元组成,由人. 阅读全文
人工智能的未来--分级时序记忆模型初探
2013-07-16 17:03 by Loull, 677 阅读, 0 推荐, 收藏,
摘要:什么是智能? 从图灵测试开始或者更早,人们普遍认为智能机器就是具有人类行为的机器。传统的人工智能也是向这个方向,即认为能做到人做的事情,就是智能。这正像我们平时的习惯,评价一个人会依据他的行为,而不是思想:一个人聪明,是因为做了聪明的事情。但是现在人们碰到了一些麻烦,电脑可以识别出超速的车牌号,却认不出入室盗窃的小偷;机器翻译可以将中英文词组互相翻译,但是碰到一整个句子就昏头昏脑胡言乱语了。 正像老霍说的,如果用人的行为来评定智能的话,那人躺着,什么都不做的时候是不是有智能的?显然是有的,我们可以做白日梦,规划安排行程,思考什么是智 能。虽然别人看不出来我们有智能的行为。显然,智能是人的内在. 阅读全文
Cracking the coding interview--Q1.8
2013-07-15 17:20 by Loull, 300 阅读, 0 推荐, 收藏,
摘要:题目原文:Assume you have a method isSubstring which checks if one word is a substring of another. Given two strings, s1 and s2, write code to check if s2 is a rotation of s1 using only one call to isSubstring ( i.e., “waterbottle” is a rotation of “erbottlewat”).译文:假设你有一个isSubstring函数,可以检测一个字符串是否是另一个字符串 阅读全文
Cracking the coding interview--Q1.7
2013-07-15 17:06 by Loull, 215 阅读, 0 推荐, 收藏,
摘要:题目原文:Write an algorithm such that if an element in an MxN matrix is 0, its entire row and column is set to 0.译文:写一个函数处理一个MxN的矩阵,如果矩阵中某个元素为0,那么把它所在的行和列都置为0.解答简单题。遍历一次矩阵,当遇到元素等于0时,记录下这个元素对应的行和列。 可以开一个行数组row和列数组col,当元素a[i][j]等于0时, 就把row[i]和col[j]置为true。第二次遍历矩阵时,当某个元素对应的行row[i] 或列col[j]被设置为true,说明该元素在需要 阅读全文
Cracking the coding interview--Q1.6
2013-07-15 16:28 by Loull, 220 阅读, 0 推荐, 收藏,
摘要:题目原文:Given an image represented by an NxN matrix, where each pixel in the image is 4 bytes, write a method to rotate the image by 90 degrees. Can you do this in place?译文:一张图像表示成NxN的矩阵,图像中每个像素是4个字节,写一个函数把图像旋转90度。 你能原地进行操作吗?(即不开辟额外的存储空间)解答我们假设要将图像逆时针旋转90度,顺时针是一个道理。如果原图如下所示:1 2 3 4 5 6 7 8 9 10 11 12 1 阅读全文
Cracking the coding interview--Q1.4
2013-07-15 11:14 by Loull, 230 阅读, 0 推荐, 收藏,
摘要:题目原文:Write a method to decide if two strings are anagrams or not.译文:写一个函数判断两个字符串是否是变位词。解答变位词(anagrams)指的是组成两个单词的字符相同,但位置不同的单词。比如说, abbcd和abcdb就是一对变位词。该题目有两种做法:O(nlogn)的解法由于组成变位词的字符是一模一样的,所以按照字典序排序后,两个字符串也就相等了。 因此我们可以用O(nlogn)的时间去排序,然后用O(n)的时间比较它们是否相等即可。代码如下: public static boolean isAnagraml(Strin... 阅读全文
Cracking the coding interview--Q1.3
2013-07-15 10:48 by Loull, 203 阅读, 0 推荐, 收藏,
摘要:题目原文:Design an algorithm and write code to remove the duplicate characters in a string without using any additional buffer. NOTE: One or two additional variables are fine. An extra copy of the array is not.FOLLOW UPWrite the test cases for this method.译文:设计算法并写出代码移除字符串中重复的字符,不能使用额外的缓存空间。注意: 可以使用额外的一 阅读全文
Cracking the coding interview--Q1.2
2013-07-11 17:02 by Loull, 267 阅读, 0 推荐, 收藏,
摘要:题目原文:Write code to reverse a C-Style String. (C-String means that “abcd” is represented as five characters, including the null character.)译文:写代码翻转一个C风格的字符串。(C风格的意思是"abcd"需要用5个字符来表示,包含末尾的 结束字符)解答这道题如果就是要考察你有没有注意到C风格字符串最后的那个结束符,那我觉得还是像书 上写的那样,在代码中有所体现。代码如下:java:package cha1;public class A002 阅读全文
数据之魅(1)单一变量:形状和分布
2013-07-11 11:26 by Loull, 674 阅读, 0 推荐, 收藏,
摘要:一、分布 关注分布的总体形状,关注要点: 数据分布 最值 数据集是大是小 是否有聚类 极异常数据 不寻常或显著的特征:空白段、锐减、异常值等 二、数据点和抖动图jitter plot 抖动jittering 用透明的开环作为数据点的符号 三、直方图histogram和核密度估计KDE 直方图不能很优雅地处理一些异常点 形成一个KDE就相当于对数据集的核函数做一次卷... 阅读全文