编程题
文章平均质量分 84
灰太狼_cxh
不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。
展开
-
合并 k 个排序链表
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6思路:就是合并排序,把每个链表看成数组的一个数,再两两比较,排序,最后返回排序合并的结果。代码:pac...原创 2018-11-04 23:18:57 · 470 阅读 · 0 评论 -
编程题:将字符串转换成整数
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入复制+2147483647 1a33输出复制2147483647 0思路:先看符号位,然后从高位到低位进行ASCll码值的匹配代码:import ja...原创 2018-06-20 13:23:58 · 1017 阅读 · 0 评论 -
编程题:构建乘积数组
题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。思路:B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]*A[i+1]*...*A[n-1] 可以分成2部分计算,先计算B[i]=A[0]*A[1]*....原创 2018-06-27 09:48:06 · 131 阅读 · 0 评论 -
编程题:数字游戏
题目描述小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取...原创 2018-06-27 09:55:42 · 728 阅读 · 0 评论 -
编程题:饥饿的小易
题目描述小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃。最开始小易在一个初始位置x_0。对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * x + 7。因为使用神秘力量要耗费太多体力,所以它只能使用神秘力量最多100,000次。贝壳总生长在能被1,000,000,007整除的位置(比如:位置0,位置1,000,000,007,位置2,000,000,014等...原创 2018-06-19 23:50:14 · 816 阅读 · 0 评论 -
编程题:跳石板
题目描述小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3.......这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。例如:N = 4,M = 24:4->6-&...原创 2018-07-08 18:30:31 · 904 阅读 · 0 评论 -
编程题:构造队列
题目描述小明同学把1到n这n个数字按照一定的顺序放入了一个队列Q中。现在他对队列Q执行了如下程序:while(!Q.empty()) //队列不空,执行循环{ int x=Q.front(); //取出当前队头的值x Q.pop(); //弹出当前队头 Q.push(x); ...原创 2018-07-01 18:11:47 · 374 阅读 · 0 评论 -
编程题:表示数值的字符串
题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。思路:分析e后面一定要有数字,不能接小数点,可以接+-符原创 2018-06-30 18:59:42 · 240 阅读 · 0 评论 -
编程题:编码
题目描述假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。 编写一个函数,输入是...原创 2018-06-25 23:24:33 · 460 阅读 · 0 评论 -
编程题: Fibonacci数列
题目描述Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1...原创 2018-06-25 22:52:17 · 2456 阅读 · 0 评论 -
编程题:正则表达式匹配
题目描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配思路:分析;常规中,如果是普通的两个字符串,那很简单,我们直接进行对比就可以了,这里又是要求匹配...原创 2018-06-30 18:08:31 · 840 阅读 · 0 评论 -
编程题:字符流中第一个不重复的字符
题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。思路:用map来统计字符出现的次数,用list来记录字符代码:package com.example.shirodemo...原创 2018-07-02 13:22:42 · 238 阅读 · 0 评论 -
编程题:二叉树的下一个结点
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:1. 如果此节点有右子树,下一个节点为右子节点的最左边的节点。2.如果此节点没有右子树,并且如果此节点是其父节点的左子节点,则下一个节点为父节点。3.如果此节点没有右子树,并且如果此节点是其父节点的右子节点,则一直向上找,直到找到第一个是其父节点左节点...原创 2018-07-09 18:53:07 · 140 阅读 · 0 评论 -
无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。 代码实现:原创 2018-10-29 23:19:10 · 144 阅读 · 0 评论 -
编程题:java实现4人在17分钟内过桥
题目:怎么让这4个人在17分钟内要过桥有4个人要过一座桥.她们都站在桥的某一边,要让她们在17分钟内全部通过这座桥.这时是晚上.她们只有一个手电筒.最多只能让两个人同时过桥.不管是谁过桥,不管是一个人还是两个人,必须要带着手电筒.手电筒必须要传来传去,不能扔过去.每个人过桥的速度不同,两个人的速度必须以较慢的那个人的速度过桥. 第一个人:过桥需要1分钟; 第二个人:过桥需要2分钟;...原创 2018-08-29 22:19:16 · 2629 阅读 · 0 评论 -
编程题:打印1到最大的n位数
打印1到最大的n位数:这道题简单也不简单,考虑如果n位数小,在int,long范围内;如果n比较大,超出long范围是一个大数。思路:数字较小情况:方法1.在int,long范围内,可以直接根据n来获得最大位数,然后直接一个for循环输出。一个大数问题,要用字符串或者数组来实现:在大数的加法中,我们需要注意的问题是进位问题。在该题中还需要判断是否为最大的n位整数。这里需要一个小技巧,我们只需判断最...原创 2018-07-15 19:03:56 · 284 阅读 · 0 评论 -
编程题:数值的整数次方
编程题:数值的整数次方思路:看起来挺简单,就是一个数学的乘法。但得考虑几种情况(num是底数,count是次方数,res是结果):1.输入的num是否为0,count是否为0;num为0,输出0;count为0,输出1。2.count是整数:直接用for循环求res*=num;3.count是负数:先取count的整数时res*=num的值,再求res=1.0/res为最后的值。代码:packag...原创 2018-07-13 18:43:56 · 377 阅读 · 0 评论 -
编程题:删除链表中的重复结点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:可以定义一个first对象(值为-1,主要用于返回操作后的链表),first.next指向head,定义一个last同样指向first(主要用于操作记录要删除节点的前...原创 2018-07-06 18:42:36 · 411 阅读 · 0 评论 -
编程题:数字翻转
题目描述对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:如果 X = 123,则rev(X) = 321;如果 X = 100,则rev(X) = 1.现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?输入描述:输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。输出描述:输出rev(rev(x) + rev(y))的值示例1输入...原创 2018-07-12 18:12:25 · 1215 阅读 · 1 评论 -
编程题:优雅的点
题目描述小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。例如:半径的平方如果为25优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。输入描述:输入为一个整数,即为圆半径的平方,范围在32位int范围内。输出描述...原创 2018-07-05 18:44:27 · 378 阅读 · 0 评论 -
编程题:链表中环的入口结点
题目描述一个链表中包含环,请找出该链表的环的入口结点。思路: 假设x为环前面的路程,a为环入口到相遇点的路程, c为环的长度 当快(走2步)慢(走一步)指针相遇的时候: 此时慢指针走的路程为Sslow = x + m * c + a 快指针走的路程为Sfast = x + n * c + a 2 Sslow = Sfast 2 * ( x + m*c...原创 2018-07-04 23:16:35 · 251 阅读 · 0 评论 -
编程题:洗牌
题目描述洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌。接着...原创 2018-06-28 19:06:49 · 1734 阅读 · 0 评论 -
编程题:回文序列
题目描述如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。现在给出一个数字序列,允许使用一种转换操作:选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之前的位置...原创 2018-07-03 18:15:07 · 1763 阅读 · 0 评论 -
编程题:不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路:实现两个是相加不用四则运算,根据计算机中的运算不用四则运算那么肯定是位运算了。(以下分析来自剑指offer)比如我们计算5+17=22这个结果,世界上,我们可以分为3个步骤计算,第一步各位数相加不进位,此时的结果是12(个位相加不进位是2,十位相加是1),所以结果是12; 第二步做进位,5+7有进位,进位值...原创 2018-06-18 18:23:34 · 1258 阅读 · 0 评论 -
编程题:翻转单词顺序列
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?思路:就是用数组来接收字符串...原创 2018-06-10 18:34:32 · 332 阅读 · 0 评论 -
编程题:数列还原
题目描述牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因,其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个整数 n 和 k(1 &l...原创 2018-06-07 00:09:42 · 860 阅读 · 0 评论 -
编程题:分苹果
题目描述n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 &l...原创 2018-05-31 08:26:45 · 1635 阅读 · 0 评论 -
编程题:分田地
题目描述牛牛和 15 个朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成 16 份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地, 作为牛牛最好的朋友,你希望牛牛取得的田地的价值和尽可能大,你知道这个值最大可以是多少吗?输入描述:每个输入包含 1 个测试用例。每个测试用例的第一行包含两个整数 n 和 m(...原创 2018-05-30 23:58:28 · 832 阅读 · 0 评论 -
编程题:下厨房
牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。输入描述:每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。输出描述:输出一行一个数字表示完成所有料理需要多少种不同的材料。示例1输入复制BUTTER FLOU...原创 2018-05-29 23:58:56 · 428 阅读 · 0 评论 -
编程题:输出所有和为S的连续正数序列
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列。序列内按...原创 2018-06-05 18:18:33 · 467 阅读 · 0 评论 -
编程题:扑克牌顺子
题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为1...原创 2018-06-12 11:30:35 · 1252 阅读 · 0 评论 -
编程题:幸运的袋子
题目描述一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下...原创 2018-06-11 11:11:15 · 580 阅读 · 0 评论 -
编程题:藏宝图
题目描述牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t,根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列。注意,子序列不要求在原字符串中是连续的,例如串 abc,它的子序列就有 {空串, a, b, c, ab, ac, bc, abc} 8 种。输入描述:每个输入包含一个测试用例。每个测试用例包含两行长度不超过 ...原创 2018-06-04 13:11:05 · 292 阅读 · 0 评论 -
编程题:包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。思路:思路:用空间换时间,用一个辅助栈记录当前栈中的最小值。辅助栈元素个数和数据栈保持一样的数目。例如一次压入数据栈数字序列为:3,2,4,1,5 那么一次压入辅助栈的为:3,2,2,1,1当每次压入数据栈的元素小余辅助站的元素的时候,才把新元素压入辅助栈,否则把辅助站栈顶元素去到压入辅助栈,保持两个栈元素个数一致。备注:St...原创 2018-06-03 15:51:25 · 220 阅读 · 0 评论 -
编程题:地牢逃脱
题目描述给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。输入描述:每个输入包含 1 个测...原创 2018-05-27 10:26:47 · 488 阅读 · 0 评论 -
编程题:不要二
题目描述二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:每组数组包含网格长宽W,H,...原创 2018-06-13 23:50:38 · 355 阅读 · 0 评论 -
编程题:两种排序方法
题目描述考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:"car" < "carriage" < "cats" < "doggies < "koala"2.根据字符串的长度排序。例如:"car" < "cats" <原创 2018-06-21 18:33:08 · 1464 阅读 · 0 评论 -
编程题:统计回文
题目描述“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “aba”...原创 2018-06-17 18:41:02 · 340 阅读 · 0 评论 -
编程题:数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路:用map来存储,如果存在就在基础加一,不存在就插入map,基础值为1.代码:package com.hehe.integ...原创 2018-06-24 23:58:15 · 397 阅读 · 0 评论 -
编程题:求1+2+3+...+n
题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)思路:条件限制比较多,只能用递归了,fn=n+f(n-1)。代码:import java.util.Scanner;/** * Created by ASUS on 2018/6/16 * * @Authod Grey Wolf */pu...原创 2018-06-16 18:46:27 · 10821 阅读 · 0 评论