社区
Java SE
帖子详情
一个软件公司的面试题
quanshi7
2006-12-29 07:13:31
把一个数组里的数组合全部列出了 比如1 2 列出来为 1, 2 ,12,21,
尽量简洁.
...全文
886
29
打赏
收藏
一个软件公司的面试题
把一个数组里的数组合全部列出了 比如1 2 列出来为 1, 2 ,12,21, 尽量简洁.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
醉马不肖
2006-12-31
打赏
举报
回复
后来仔细想了一下,
感觉自己说的不对,
如果不考虑的输出结果是否有重复的话,直接排列就可以了,
如果要求输出没有重复,就必须考虑重复的排列
shine333
2006-12-30
打赏
举报
回复
上面的程序,其实已经考虑重复的情况了,只是自己没发现。
For_suzhen
2006-12-30
打赏
举报
回复
说错了,确实应该是个排列
向2楼的致歉
For_suzhen
2006-12-30
打赏
举报
回复
应该是一个组合的问题
For_suzhen
2006-12-30
打赏
举报
回复
帮顶,全排列,可不是简单的循环。
利用递归函数进行数组的全排列。
算法思想:
每次确定一个元素作为排列的第一个元素,然后对剩下的元素进行全排列并与已确定元素构成整个数组的全排列。
============================================================================
虽然不是简单的循环,可也不是全排列阿
54powerman
2006-12-30
打赏
举报
回复
循环不好吧,数量不限的话,还是递归吧。
cooljelly
2006-12-30
打赏
举报
回复
我编译了下也报错,刚开始学java,想看看你们的代码
listAll.java:1: 'class' or 'interface' expected
public static void main(String[] args) throws Exception
^
1 error
chszs
2006-12-30
打赏
举报
回复
先判断数组的元素是否有重复(即相等)?
有重复->递归+组合
无重复->递归+排列
暂时先讨论无重复的情况,数组的元素看作是一个集合,假设为n个,则
1): 取一个元素的情况,有n种可能性;
2): 取两个元素的情况,则有n*(n-1)/2种可能性,而取得的两个数又可以进行全排列,所以共有2!*n*(n-1)/2=n*(n-1)种可能性;
......
n-1): 取n-1个元素的情况,有n种可能性,而取得的n-1个数又可以进行全排列,所以共有n*(n-1)!=n!;
n): 取n个元素的情况,有1种,一个全排列,共有n!种;
所有的可能性为从第1)步到第n)步的可能性之和。
编程用递归也不容易,数组元素如果有重复,那就要用到《组合数学》中的定理了。限于时间,不再赘述。
quanshi7
2006-12-30
打赏
举报
回复
这个其实不简单呀,主要是考一个思想
nicky_hk
2006-12-30
打赏
举报
回复
mark
quanshi7
2006-12-30
打赏
举报
回复
好了,朋友谢谢你呀,能不能加你的QQ呀?
shine333
2006-12-30
打赏
举报
回复
报什么错,编译错误还是运行错误
quanshi7
2006-12-30
打赏
举报
回复
shine333(enihs) 你的程序有我怎么一运行,就报错呀,
laiwusheng
2006-12-30
打赏
举报
回复
niu
antony0203
2006-12-30
打赏
举报
回复
这个考代码的话还是蛮简单的,shine333(enihs) 的回答我觉得挺详细的了,
考思想,那就不知道所以然了,进来学习学习
quanshi7
2006-12-30
打赏
举报
回复
shine333 谢谢你呀,能不能加你的QQ呀?
shine333
2006-12-30
打赏
举报
回复
排列
Pn(m)
首先去掉相同的数, ......
=================================
大家根本不需要考虑重复不重复这件事情,取的时候,就只有位置信息,而不管他们的数值是多少。最后出来的结果,必然是
1
12
123
1234
124
1243
13
......
只不过这里1,2的含义不是数值,而是位置信息
shine333
2006-12-30
打赏
举报
回复
回复人:cooljelly() ( ) 信誉:100 2006-12-30 12:26:56 得分:0
? 我编译了下也报错,刚开始学java,想看看你们的代码
listAll.java:1: 'class' or 'interface' expected
public static void main(String[] args) throws Exception
^
1 error
外面写个class
public class Test {
pubilc static void main .......
}
醉马不肖
2006-12-30
打赏
举报
回复
排列
Pn(m)
首先去掉相同的数,然后根据排列的公式算出所有的排列,去掉位数2位以上的数的各个位上的数字都在1位数的数字集合里都出现过,
最后就是剩下的数组为A,元素个数为N,最后在根据排列公式算出所有的可能!
Pn(1)=n!/(n-1)!
Pn(2)=n!/(n-2)!
Pn(3)=n!/(n-3)!
...
Pn(n)=n!/(n-n)! (n是数组中有多少个不同的数)
kaoloveting
2006-12-30
打赏
举报
回复
我也怕面试题目
加载更多回复(9)
最全的IT
公司
面试
题
集 CHM版的
Java
面试
题
,J2EE
面试
题
,.net
面试
题
,PHP
面试
题
,数据库
面试
题
,英语
面试
,外企
面试
,
软件
测试
面试
题
,Python
面试
题
,Oracle
面试
题
,MySql
面试
题
,Web开发
面试
题
,Unix
面试
题
,程序员
面试
,网络技术
面试
题
,网络安全
面试
题
,Linux...
java常见
面试
题
合集
软件
公司
招java工程师常见的
面试
题
合集。52个文档,看完绝对ok。 将免费进行到底
Linux运维中级
面试
题
知名
公司
的Linux运维中级
面试
题
,部分提供了答案,可以测试自己功力!
软件
测试工程师经典
面试
题
软件
测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。...测试工程师的
面试
题
,基本上都是大同小异的,
面试
的核心主要在于框架模块(一到两年工作经验) 。今...
嵌入式
软件
面试
题
嵌入式
软件
校招常见
面试
题
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章