
数据结构+算法
文章平均质量分 65
jhyxss
这个作者很懒,什么都没留下…
展开
-
每日一道算法题:Single Number I
算法题:Single Number题目来自LeetCode,如下: Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a原创 2014-11-08 18:31:45 · 534 阅读 · 0 评论 -
每日一道算法题:字符串反转
题目:实现字符串反转,要求不使用任何系统函数,且时间原创 2014-11-22 01:22:12 · 455 阅读 · 0 评论 -
每日一道算法题:两个数组的交集
题目:A、B两个整数集合,设计一个算法求它们的交集,尽可能的原创 2014-11-22 18:42:04 · 752 阅读 · 0 评论 -
每日一道算法题:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。解题思路:对于一般字符串或整数数组是否存在某对象,或者判断对象个数问题,都可以利用hashtable来完成,这里,我们利用数组构建一个简单的hashtable,第一次遍历字符串,记录每个字符出现的次数;第二次遍历记录个数的数组,找到第一个值为1的位置对应的字符,就是本题所求的字符,代码如下:#include原创 2014-11-29 20:28:14 · 2925 阅读 · 0 评论 -
每日一道算法题:求一个矩阵中最大的二维矩阵(元素和最大)
题目:求一个矩阵中最大的二维矩阵(元素和最大),如:1 2 0 3 42 3 4 5 11 1 5 3 0中最大的是:4 55 3要求:(1)写出算法;(2)分析时间复杂度;(3)用C写出关键代码。解题思路:暴力解法,将原始数组的每个二维子数组的和计算出来,找出最大值,再将此最大值对应的二维子数组输出即可,时间复杂度为O(m*n),m为行原创 2014-11-29 21:21:02 · 752 阅读 · 0 评论 -
每日一道算法题:输出和为n的连续正整数序列
题目:输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。解题思路:我们以正数21为例,由于21=1+2+3+4+5+6=6+7+8=10+11,那么题目要求输出的连续序列为1-6、6-8和10-11。假设计算出的某个序列为m-n,那么这个序列中正数的个数为(n-m+1),这里,可以参照高斯原创 2014-11-30 21:45:40 · 5740 阅读 · 0 评论 -
每日一道算法题:寻找丑数
题目:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。求按从小到大的顺序的第1500个丑数。解题思路:第一种方法,暴力解法,从数字1开始遍历,一直找到第1500个丑数为止,这种穷举的思路是最简单的,效率也是最低的。代码如下:#include using namespace std;bool原创 2014-12-01 22:25:59 · 494 阅读 · 0 评论 -
每日一道算法题:a~z包括大小写与0~9组成的N个数,用最快的方式把其中重复的元素挑出来。
题目:a~z包括大小写与0~9组成的N个数,用最快的方式把其中重复的元素挑出来。解题思路:这是百度2010年的一道面试题。题目要求是用最快的方式查找,那么可以想到利用hashtable,将a~z、A~Z和0~9作为hashtable的键,将它们各自出现的次数作为hashtable的值,只要hashtable中的值大于1,那么其对应的元素即为重复元素,代码如下:#include using原创 2014-12-02 15:58:47 · 1084 阅读 · 0 评论 -
每日一道算法题:输入一个表示整数的字符串,把该字符串转换成整数并输出
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。解题思路:针对此字符串,从头到尾开始遍历,首先判断第一个字符,如果没有负号,继续遍历,有负号,将最终输出的整数以负数形式输出即可;其次针对后面的数字字符,将前面得到的整数乘以10再加上此字符对应的数字即可;碰到非法字符,转换停止;最后大数问题也是需要考虑的。代码如下:#include using namespace std;原创 2014-12-05 23:54:39 · 7197 阅读 · 1 评论 -
每日一道算法题:一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值
题目:一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值。 比如{3,2,4,3,6}可以分为{3,2,4,3,6}, m = 1; {3,6},{2,4,3}, m = 2;原创 2014-12-08 17:58:56 · 4260 阅读 · 2 评论 -
每日一道算法题:奇偶排序
题目:在一个N个整数数组里面,有多个奇数和偶数,设计一个算法,令所有的奇数都在偶数左边。解题思路:想到的第一个思路是定义两个指针,第一个指针p指向数组的第一个元素,第二个指针q指向数组的最后一个元素,然后让p向后遍历,让q向前遍历,直到p找到第一个偶数,q找到第一个奇数,交换两个元素,继续让两个指针遍历数组,直到q在p的前面,这样就保证数组中所有奇数在偶数前面。代码如下:#include原创 2014-11-20 19:23:13 · 1178 阅读 · 0 评论 -
每日一道算法题:求N个整数的最大公约数
题目:求N个整数的最大公约数解题思路:平时原创 2014-11-25 14:11:04 · 1276 阅读 · 0 评论 -
每日一道算法题:打印一维数组的所有组合
题目:打印一维数组的所有组合解题思路:原创 2014-11-19 23:35:02 · 1381 阅读 · 0 评论 -
每日一道算法题:判断5个数值是否连续相邻
这道题目是上个月和某公司原创 2014-11-09 16:32:16 · 1773 阅读 · 0 评论 -
每日一道算法题:求数对之差的最大值
这道题目是上个月应聘某公司时在collabedit网站上进行在线笔试的第题,题目如下:原创 2014-11-10 21:19:14 · 1722 阅读 · 0 评论 -
每日一道算法题:Google 2009年某笔试题:求出元素位于0到9之间的集合A中大于某个给定正整数K的组成的最小正整数。
这题是Google 2009年在华南地区的笔试题,题目如下:给定一个集合A = [0,1,3,8]原创 2014-11-12 23:22:09 · 843 阅读 · 0 评论 -
每日一道算法题:Google面试题:判断一个自然数是否是某个数的平方
题目如下:判断一个自然数是否是某个数的平方解题silu原创 2014-11-14 21:30:49 · 1010 阅读 · 0 评论 -
每日一道算法题:Google面试题:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
题目:给定能随机生成整数1到原创 2014-11-15 16:14:09 · 735 阅读 · 0 评论 -
每日一道算法题:1024!末尾有多少个0?
题目:1024!末尾有多少个0?解题思路:ti原创 2014-11-16 23:17:17 · 867 阅读 · 0 评论 -
每日一道算法题:编程实现两个数的除法,当然不能用除法操作符
题目:编程实现两个数的除法,原创 2014-11-17 23:31:52 · 973 阅读 · 0 评论 -
每日一道算法题:Jump Game
题目来自LeetCode,如下:原创 2014-11-11 12:23:43 · 491 阅读 · 0 评论 -
每日一道算法题:微软面试题:在排序数组中,找出给定数字出现的次数
题目:在排序数组中,找出给定数字出现的原创 2014-11-19 22:08:59 · 831 阅读 · 0 评论 -
每日一道算法题:数组中出现次数超过一半的数字
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过了数组长度的一半,因此输出2。解题思路:如果某个数字在数组中出现的次数超过了数组长度的一半,我们将数组排序后,数组中间的数字必为次数。按照这种思路,我们先将数组排序,再直接输出数组中间的数即可,代码如下:#include原创 2014-12-09 22:32:00 · 600 阅读 · 0 评论