- 博客(15)
- 资源 (11)
- 收藏
- 关注
原创 不用数组实现杨辉三角(巴斯卡三角形)
这个思想是很先进,所以分享了,大家可以参考一下,import java.util.Scanner;/** * 输出的结果为为下所示: * 1 1 1 1 2 1 1
2012-03-29 23:33:11 3560
转载 输出1到n位之间的所有数字
题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。分析:这是一道很有意思的题目。看起来很简单,其实里面却有不少的玄机。void Print1ToMaxOfNDigits_1(int n){ // calculate 10^n int number = 1; int i = 0; wh
2012-03-20 17:51:58 1462
转载 求1-n直接1出现的次数
题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。分析:这是一道广为流传的google面试题。用最直观的方法求解并不是很难,但遗憾的是效率不是很高;而要得出一个效率较高的算法,需要比较强的分析能力,并不是件很容易的事情。当然,google的面试题中简单的也没有几道。首先我们来
2012-03-18 17:49:49 782
转载 寻找丑数
题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。分析:这是一道在网络上广为流传的面试题,据说google曾经采用过这道题。所谓一个数m是另一个数n的因子,是指n能被m整除,也就是n % m == 0。根据丑数的定义,丑数只能被2、3和5整除。也就是
2012-03-18 16:11:51 483
原创 八皇后问题
package quess;/** * 由于八个皇后的任意两个不能处在同一行,那么这肯定是每一个皇后占据一行。 * 于是我们可以定义一个数组ColumnIndex[8],数组中第i个数字表示位于第i行的皇后的列号。 * 先把ColumnIndex的八个数字分别用0-7初始化,接下来我们要做的事情就是对数组ColumnIndex做全排列。 * 由于我们是用不同的数字初始化数组中的
2012-03-18 13:43:41 423
转载 时间复杂度为O(n)的排序
题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。分析:排序是面试时经常被提及的一类题目,我们也熟悉其中很多种算法,诸如插入排序、归并排序、冒泡排序,快速排序等等。这些排序的算法,要么是O(n2)的,要么是O(nlogn)的。可是这道题竟然要求是O(n)的,这里面到底有什么玄机呢? 题目特别强调
2012-03-18 11:17:33 832
原创 求数对的最大值
package maxD_value;/** * 题目:在数组中,数字减去它右边的数字得到一个数对之差。 * 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果。 * */public class Test {//下面这个方法是从后往前遍历一遍,找出最小的值,然后用前面的值减去最小
2012-03-17 23:43:52 691 2
转载 求两个数的和(不用+-*/)
题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。 分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。 看到的这个题目,我的第一反应是傻眼了,四则运算都不能用,那还能用什么啊?可是问题总是要解决的,只能打开思路去思考各种可能性。首先我们可以分析人们是如何做十
2012-03-17 15:05:24 511
转载 程序员有趣的面试智力题
偶然间在网上看到几个原来没见过的面试智力题,有几个题目在国内流传相当广,什么n个人怎么分饼最公平,屋里的三个灯泡分别由哪个开关控制,三架飞机环游世界,用火柴和两根绳子测量45分钟之类的题目,火星得已经可以考古了,这里就不再说了。 1、考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能
2012-03-17 12:00:06 735
转载 求数组中第K大数
问题:有一个大小为n的数组A[0,1,2,…,n-1],求其中第k大的数。该问题是一个经典的问题,在《算法导论》中被作为单独的一节提出,而且其解决方法很好的利用了分治的思想,将时间复杂度控制在了O(n),这多少出乎我们的意料,此处暂且不表。该问题还可以变形为:有一个大小为 n的数组A[0,1,2,…,n-1],求其中前k大的数。一字之差,原问题是“第k大”,变形的问题是“前k大”,但是
2012-03-16 23:25:39 713
转载 变量转换(不使用中间变量)
第一种方法:a=a+b;b=a-b;a=a-b; 代码如下: ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······
2012-03-16 21:59:48 427
转载 面试题目
1、实现一个函数,对一个正整数n,算得到1需要的最少操作次数。操作规则为:如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;一直处理下去。例子:func(7) = 4,可以证明最少需要4次运算n = 7n-1 6n/2 3n-1 2n/2 1要求:实现函数(实现尽可能高效) int func(unsign int n);n为输入,返回最小的运算次数。给出思路(
2012-03-16 21:29:06 462
原创 打印蛇形图案
import java.util.Scanner;public class Test {/*** 输出蛇形的图案。(如下所示:)* 10 11 12 1 * 9 16 13 2 * 8 15 14 3 * 7 6 5 4 */public static void main(String[] args) {Scanner sc = new Scann
2012-03-07 22:57:09 925
原创 两个大整数的乘法
和上面一篇的思想是一样的,就是用数组来进行保存数据,这里比上面的复杂一点,因为他要记录每一次乘后的结果,在后一次乘的过程中还要加上原来的那个数。程序源码:package dashuchengfa;import java.util.Scanner;public class Test {public static void main(String[] arg
2012-03-05 23:37:17 728
原创 大数阶乘的求法
首先是定义一个数组,然后用数组的每一个元素来记录运算结果的每一个,从个位数字开始算起,这样可以很好地解决进位的问题。程序源代码:import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int i
2012-03-05 22:25:07 471
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人