算法
Wind Lu
擅长推荐系统、大数据技术,熟悉用户增长、营销推荐、销量预测等智能化运营领域,带过团队,创过业,曾任蚂蚁技术大学讲师,是阿里自动时序预测算法组件的作者,拥有多项技术专利
展开
-
数据结构与算法应用(九):绘制表格——蓝桥杯2011年Java预赛
在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。 其实,它是由如下的符号拼接的: 左上 = ┌ 上 = ┬ 右上 = ┐ 左 = ├ 中心 = ┼ 右 = ┤ 左下= └ 下 = ┴ 右下 = ┘ 垂直 = │ 水平 = ─ 本题目要求编写原创 2015-02-13 11:52:09 · 565 阅读 · 0 评论 -
数据结构与算法应用(十八):古代赌局——蓝桥杯2012年Java决赛
俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把任意数量的钱押在某个编号的匣子上。所有玩家都下注后,庄家同时掷出3个骰子(骰子上的数字都是1至6)。输赢规则如下:1. 若某一个骰子上的数字与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目赔付(即1比1的赔原创 2015-02-13 12:57:13 · 632 阅读 · 0 评论 -
数据结构与算法应用(二):斐波那契数列的递归与非递归算法实现及其时间复杂度
斐波那契数列 1、1、2、3、5、8、13、21、34…… int F(int n)//递归算法{ if(n<=1) return 1; return F(n-1)+F(n-2);//O(n)=2^n}int f(int n)//非递归算法{ int i,j=1,k=1,p=1; for (i=2;i<=n;i原创 2015-02-13 14:19:46 · 4864 阅读 · 0 评论 -
数据结构与算法应用(十六):提取子串——蓝桥杯2012年Java决赛
串“abcba”以字母“c”为中心左右对称;串“abba” 是另一种模式的左右对称。这两种情况我们都称这个串是镜像串。特别地,只含有1个字母的串,可以看成是第一种模式的镜像串。 一个串可以含有许多镜像子串。我们的目标是求一个串的最大镜像子串(最长的镜像子串),如果有多个最大镜像子串,对称中心靠左的优先选中。例如:“abcdeefghhgfeiieje444k444lmn”的最大镜像子串是:“efgh原创 2015-02-13 12:41:25 · 689 阅读 · 0 评论 -
数据结构与算法应用(十二):矩形运算——蓝桥杯2012年Java预赛
在编写图形界面软件的时候,经常会遇到处理两个矩形的关系。如图【1.jpg】所示,矩形的交集指的是:两个矩形重叠区的矩形,当然也可能不存在(参看【2.jpg】)。两个矩形的并集指的是:能包含这两个矩形的最小矩形,它一定是存在的。 本题目的要求就是:由用户输入两个矩形的坐标,程序输出它们的交集和并集矩形。矩形坐标的输入格式是输入两个对角点坐标,注意,不保证是哪个对角,也不保原创 2015-02-13 14:09:54 · 632 阅读 · 0 评论 -
数据结构与算法应用(十一):趣味算式——蓝桥杯2012年Java预赛
匪警请拨110,即使手机欠费也可拨通!为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!某批警察叔叔正在进行智力训练:1 2 3 4 5 6 7 8 9 = 110;请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个数,例如:12+34+56+7-8+9 就是一种原创 2015-02-13 13:52:49 · 510 阅读 · 0 评论 -
数据结构与算法应用(三):Majority Number
题目: No.1 Majority Number Given an array of integers, the majority number is the number that occurs more than half of the size of the array. Find it. (给定一个整型数组,找到一个数,它在数组中的出现次数大于数组元素个数的二分之一) 样例For原创 2015-02-13 14:40:28 · 1452 阅读 · 0 评论 -
数据结构与算法应用(一):顺序表(数组)和链表的比较
特点对比: 1、存取方式上,数组可以顺序存取或者随机存取,而链表只能顺序存取; 2、存储位置上,数组逻辑上相邻的元素在物理存储位置上也相邻,而链表不一定; 3、存储空间上,链表由于带有指针域,存储密度不如数组大; 4、按序号查找时,数组可以随机访问,时间复杂度为O(1),而链表不支持随机访问,平均需要O(n); 5、按值查找时,若数组无序,数组和链表时间复杂度均为O(1),但是当原创 2015-02-13 15:02:01 · 2690 阅读 · 0 评论 -
数据结构与算法应用(四):Majority Number II
No.1-2 Majority Number II Given an array of integers, the majority number is the number that occurs more than 1/3 of the size of the array. Find it.Note There is only one majority number in the arr原创 2015-02-13 14:46:42 · 1346 阅读 · 0 评论 -
数据结构与算法应用(五):Minimum Subarray
题目:Given an array of integers, find the subarray with smallest sum. Return the sum of the subarray. 翻译:给定一个整型数组,找到它的一个子数组,使得这个子数组的和是所有子组的和中最小的。注意 The subarray should contain at least one integer.样例 Fo原创 2015-02-13 14:54:15 · 564 阅读 · 0 评论 -
数据结构与算法应用(八):分治算法
当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。 利用分治策略求解原创 2015-02-14 19:19:33 · 547 阅读 · 0 评论 -
数据结构与算法应用(七):筛选算法
将自定义范围的数存在单链表中,利用爱拉托散(Eratosthenes)法进行判断,若满足倍数条件将其释放掉。/*求任意给定范围之间的素数。*///用自定义结构体typedef struct设计该软件的数据结构;typedef struct num{ long int data; struct num *next;}Num;long int n1,n2,n;//初始化链表N原创 2015-02-14 19:23:34 · 2729 阅读 · 0 评论 -
数据结构与算法应用(六):Merge Sorted Array
Merge two given sorted integer array A and B into a new sorted integer array. (合并两个排好序的数组) 样例 A=[1,2,3,4] B=[2,4,5,6] return [1,2,2,3,4,4,5,6] 挑战 Expand How can you optimize your algorithm原创 2015-02-13 14:59:25 · 1348 阅读 · 0 评论 -
数据结构与算法应用(十四):树形显示——蓝桥杯2011年Java决赛
树形结构应用十分广泛。下面这段代码根据用户添加的数据,在内存中构建一个逻辑上等价的树形结构。通过ShowTree() 可以把它显示为控制中的样子。其中: a.add(‘a’, ‘b’); a.add(‘b’, ‘e’); 表示:’b’ 作为 ‘a’ 的孩子节点;’e’ 作为 ‘b’的孩子节点。 如代码中给出的示例数据,输出结果应该为:a–b–e | |–f–j | |–原创 2015-02-13 11:43:13 · 555 阅读 · 0 评论 -
数据结构与算法应用(十三):公倍数——蓝桥杯2011年Java决赛
公倍数——蓝桥杯2011年决赛题目为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。 但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。 事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。我们希望寻找到能除尽1至n的的每个数字的最小整数。不要小看这个数字,它可能十分大,比如n=100, 则该数为: 69720375229712477164533原创 2015-02-13 11:34:47 · 676 阅读 · 0 评论 -
数据结构与算法应用(十五):数量周期——蓝桥杯2012年Java决赛
复杂现象背后的推动力,可能是极其简单的原理。科学的目标之一就是发现纷繁复杂的自然现象背后的简单法则。爱因斯坦的相对论是这方面的典范例证。很早的时候,生物学家观察某区域某种昆虫的数量(称为虫口数)之逐年变化规律,就十分迷惑:有的时候是逐渐增多达到一个平衡值。有的时候在两个数字间周期跳动。有的时候则进入一片混乱,类似随机数字一样变化(称为混沌现象)。慢慢地,人们从数学中更清晰地观察到了这一现象,并因此开原创 2015-02-13 12:37:42 · 500 阅读 · 0 评论 -
数据结构与算法应用(十):账单查错——蓝桥杯2011年Java预赛
某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔。如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗? 如果有多种可能,则输出所有可能的情况。 我们规定:用户输入的第一行是:有错的总金额。 接下来是一个整数n,表示下面将要输入的明细账目的条数。 再接下来是n行整数,分别表示每笔账目的金额。 要求程序输出:所有可能漏掉的金额组合。每个情况1行。金额按照从小到大排列原创 2015-02-13 12:25:25 · 807 阅读 · 0 评论 -
数据结构与算法应用(十七):源码变换——蓝桥杯2012年Java决赛
源文件变成了一团遭。这是因为,文本中的许多回车和空格都被忽略了。而有些符号在html中有特殊的含义,引起了更复杂的局面。为了源文件能正常显示,我们必须为文本加上适当的标签。对特殊的符号进行转义处理。常用的有:HTML 需要转义的实体:& ---> &空格 ---> < ---> <> ---> >" ---> &原创 2015-02-13 12:52:01 · 547 阅读 · 0 评论