算法问题~~ 数组中有3中类型的对象a,b,c,如何遍历数组得到只有a类型,b类型,c类型和2种类型,3种类型的6种情况?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 hehe ,不好意思啊只存在a 为一种情况. .....b.................c...........存在a和b为一种情况存在a和c为一种情况存在c和b为一种情况3种类型都存在为第6种情况 有没有比较简单的算法,谢过 比较笨的方法设定3个标识位flag[3]遍历数组有符合的条件就把标识位改变然后判断标识位的状态就知道事那种情况了 从1到 2^N - 1遍历就可以了char[] array = new char[]{'a','b','c','d'};int max = (int) Math.pow(2, array.length);for(int i = 1; i < max; i++) { for(int j = 0; j < array.length; j++) { if( (i & (1 << j)) != 0) System.out.print(array[j] + ","); } System.out.println();} 同意 sunxutx(孤云挂月) 的想法,不过我觉得不需要用一个数组,而是采用一个整数,然后采用位运算,最后直接返回这个整数。 一个for循环就能打印出菱形! 高手指教: 怎么样取消一个线程 面试题求解 关于数据库连接池 关于java参数是传递引用的不解 这怎么实现,刚刚学java,很多不会 !!!请问哪里有java源代码的程序下载 Applet中如何使用Dialog创建对话框 如何提示文本框中还有多少字符可用 请教将一个ByteArrayOutputStream的流里的数据,写到d:\test.txt 文件里的方法。谢谢 如何检测一个字符串只是数字,二十六个字母(大小写皆可)的组合;java类库有这个函数吗? 怪了,我为什么在2K3上面装J2SDK后不能编译?
只存在a 为一种情况
. .....b...........
......c...........
存在a和b为一种情况
存在a和c为一种情况
存在c和b为一种情况
3种类型都存在为第6种情况
有没有比较简单的算法,谢过
设定3个标识位
flag[3]
遍历数组
有符合的条件就把标识位改变
然后判断标识位的状态就知道事那种情况了
int max = (int) Math.pow(2, array.length);
for(int i = 1; i < max; i++) {
for(int j = 0; j < array.length; j++) {
if( (i & (1 << j)) != 0)
System.out.print(array[j] + ",");
}
System.out.println();
}