逝者如斯,不舍昼夜

尘世中一个迷途小书童,读书太少,想得太多
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  算法

摘要:这篇博文同上篇博文百度2017年暑期实习生笔试题——单词接龙同属2016中兴捧月蓝剑之路挑战赛初赛模拟测试题,相比前一题难度偏低,非恶意灌水,仅为保证该系列博文的完整性。 题目来源:iNOC产品部--完全数计算 这道题同时也是2016中兴捧月蓝剑之路挑战赛初赛模拟测试题,问题描述如下图: 测试用例如 阅读全文

posted @ 2016-06-14 20:14 SteveWang 阅读(1331) 评论(0) 推荐(0) 编辑

摘要:并查集 并查集(Union-Find Sets)是一种非常精巧而实用的集合,集合中的每个元素仍是一个集合,即它是集合的集合。在并查集中的元素(集合)内部进行查找操作以及并查集中的元素(集合)之间的合并操作的时间复杂度均可视为O(1),它主要用于处理一些不相交集合的合并问题,在合并之前,需要先判断两个 阅读全文

posted @ 2016-05-18 20:08 SteveWang 阅读(601) 评论(0) 推荐(0) 编辑

摘要:(2017腾讯实习生校招笔试题)Calvin和David正在玩取纽扣游戏,桌上一共有16个纽扣,两人轮流来取纽扣,每人每次可以选择取1个或3个或6个(不允许不取),谁取完最后的纽扣谁赢。Cavin和David都非常想赢得这个游戏,如果Cavin可以先取,Cavin的必胜策略下第一步应该取 A、1个 阅读全文

posted @ 2016-04-17 10:21 SteveWang 阅读(1363) 评论(0) 推荐(1) 编辑

摘要:Holiday Hotel Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8302 Accepted: 3249 Description Mr. and Mrs. Smith are going to the seaside f 阅读全文

posted @ 2016-04-03 10:21 SteveWang 阅读(683) 评论(0) 推荐(0) 编辑

摘要:目录 计数排序 基数排序 桶排序 上一篇文章中我们总结了常用的比较排序算法,主要有冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 这篇文章中我们来探讨一下常用的非比较排序算法:计数排序,基数排序,桶排序。在一定条件下,它们的时间复杂度可以达到O(n)。 这里我们用到的唯一数据结构就是数 阅读全文

posted @ 2016-03-29 13:07 SteveWang 阅读(16933) 评论(3) 推荐(4) 编辑

摘要:目录 冒泡排序 鸡尾酒排序 选择排序 插入排序 二分插入排序 希尔排序 归并排序 堆排序 快速排序 鸡尾酒排序 二分插入排序 希尔排序 我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2), 阅读全文

posted @ 2016-03-28 22:13 SteveWang 阅读(379066) 评论(37) 推荐(97) 编辑

摘要:方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多的那个数。Java代码如下: 上例是一种典型的空间换时间算法(所需数组空间的大小完全取决于数组中数字 阅读全文

posted @ 2016-03-19 19:59 SteveWang 阅读(28325) 评论(0) 推荐(2) 编辑

摘要:题目:斐波那契数列,又称黄金分割数列(F(n+1)/F(n)的极限是1:1.618,即黄金分割率),指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。在数学上,斐波纳契数列以如下被以递归的方法定义: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈ 阅读全文

posted @ 2015-09-26 21:23 SteveWang 阅读(1683) 评论(0) 推荐(0) 编辑

摘要:题目:给定N个整数的序列{A1,A2,...,AN},求函数 分析:A1,A2,...,AN是可正可负的整数序列,本题欲求从i到j的子序列和的最大值(若结果为负则输出0,这是与牛课网上最大连续数列和这道题的不同之处,只需将本题代码中max_sum的初始值由0改为INT_MIN即可求解牛客网上那道题) 阅读全文

posted @ 2015-09-17 18:17 SteveWang 阅读(695) 评论(0) 推荐(0) 编辑

摘要:来源:LeetCode 258 Add Dights Question:Given a non-negative integer num , repeatedly add all its digits until the result has only one digit. For example: 阅读全文

posted @ 2015-09-03 20:31 SteveWang 阅读(2626) 评论(0) 推荐(0) 编辑

摘要:秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法,在西方被称作霍纳算法。它是一种将一元n次多项式的求值问题转化为n个一次式的算法。 一般地,我们用系数表达一个一元n次多项式(对应的,还有点值表达),在这种表达方式下直接求值需要执行n(n+1)/2次乘法和n次加法,时间复杂度为O(n2) 阅读全文

posted @ 2015-09-02 21:55 SteveWang 阅读(5817) 评论(0) 推荐(0) 编辑

摘要:来源:《算法竞赛入门经典》例题5.4.3 题目:果园里的树排列成矩阵。它们的x和y坐标均是1~99的整数。输入若干个三角形,依次统计每一个三角形内部和边界上共有多少棵树 样例输入: 1.5 1.5 1.5 6.8 6.8 1.5 10.7 6.9 8.5 1.5 14.5 ... 阅读全文

posted @ 2015-09-02 17:35 SteveWang 阅读(677) 评论(0) 推荐(0) 编辑

摘要:来源:《算法竞赛入门经典》例题5.4.2 题目:输入正整数n(2≤n≤100),把阶乘n!=1*2*3*...*n分解成素因子相乘的形式,从小到大输出各个素数(2、3、5...)的指数。例如,5! 表示为 3 1 1(5!=23*31*51=120),程序忽略比最大素因子更大的素数(否则末尾会... 阅读全文

posted @ 2015-08-30 22:03 SteveWang 阅读(1615) 评论(0) 推荐(0) 编辑

摘要:来源:《算法竞赛入门经典》例题5.4.1 题目:现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 第一项是1/1,第二项是是1/2,第三项是2/1,第四项是3/1,第五项是2/2,……。输入n,输出第n项。 样例输入: 3... 阅读全文

posted @ 2015-08-30 14:25 SteveWang 阅读(7792) 评论(0) 推荐(1) 编辑

摘要:来源:《算法竞赛入门经典》例题5.3.2 题目:输入一个字典(用******结尾),然后再输入若干单词。每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出( 如果不存在,输出:( )。输入单词之间用空格或空行隔开,且所有输入单词都由... 阅读全文

posted @ 2015-08-29 15:51 SteveWang 阅读(1778) 评论(0) 推荐(0) 编辑

摘要:来源:《算法竞赛入门经典》例题5.2.2 题目:输入不超过1000的正整数n,输出n!=1*2*3*…*n的精确结果。 样例输入:30 样例输出:265252859812191058636308480000000 分析:为了保存结果,需要分析1000!有多大。用计算器算一算不难知道,10... 阅读全文

posted @ 2015-08-28 16:25 SteveWang 阅读(814) 评论(0) 推荐(1) 编辑

摘要:来源:《算法竞赛入门经典》例题5.2.1 原题:很多学生在学习加法时,发现”进位“特别容易出错。你的任务是计算两个整数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。假设输入的整数都不超过9位。 样例输入:123 456 样例输出:0 样例输入:55 阅读全文

posted @ 2015-08-28 12:31 SteveWang 阅读(1130) 评论(0) 推荐(0) 编辑

摘要:来源:《算法竞赛入门经典》例题5.1.3 题目:如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。 样例输入:HoHoHo 样例输出:2 分析:... 阅读全文

posted @ 2015-08-27 19:33 SteveWang 阅读(3231) 评论(0) 推荐(2) 编辑

摘要:例题3-1 开灯问题 题目:有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共k个人,问最后有那些灯开着?输入:n和k,输出开着的灯编号。k<=n<=10 阅读全文

posted @ 2015-08-17 18:03 SteveWang 阅读(844) 评论(1) 推荐(0) 编辑

摘要:例2-4 文件读写(freopen重定向) 题目:输入一些整数,求出他们的最小值、最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。 样例输入:2 8 3 5 1 7 3 6 样例输出:1 8 4.375#include#define INF 1000000000int ... 阅读全文

posted @ 2015-08-14 17:29 SteveWang 阅读(512) 评论(0) 推荐(0) 编辑