算法难题设计出java代码或者伪代码,大牛请进。

问题描述

算法难题设计出java代码或者伪代码,大牛请进。
把 1 2 3 4 5 6 7 8 9 放入三个数组里面 数组可以是空的。。

数组里面的数 是有序的 比如
{1 2 3} { 4 5 6 } { 7 8 9 };{356789},{124},{}
能穷举吗.打印出来

解决方案

{123456789},{},{} 可以么,如果是可以的话,那么是非常简单的

解决方案二:
我是一个刚刚学习编程半年的小白,有点思路,可能不准确,抛砖引玉。
我觉得这个题的实质,是对1 2 3 4 5 6 7 8 9进行切割,一共切割3次,然后将切割后的段放到3个集合里,少于3段用空集合补,具体有以下几种情况:

切几个地方                          切的具体位置                    切出来的结果

3刀切在1个地方 1.切在头或尾巴: 1段数字,2段空白 (例: /123456789)
2. 切在中间 2段数字,1段空白 (例: 1234/56789)
3刀切在2个地方 1. 1头1尾 1段数字,2段空白 (例:/123456789/)
2. 1头1中(或1尾1中) 2段数字,1段空白 (例:/123/456789 或12345/6789/)
3. 2中 3段数字,0段空白 (例:123/45678/9)
3刀切在3个地方 1. 1头1尾1中 2段数字,1段空白 (例:/12345/6789/)
2. 1头2中(或1尾2中) 3段数字,0段空白 (例:/123/456/789 或12/345/6789/)
3. 3中 4段数字,0段空白 (例:123/45/678/9)
针对最后一种情况,要对这4段进行多次组合,组合成3段,比如{45}、{678}、{1239},

以上几种情况之中有重复的情况,水平有限,感觉整体上应该可以覆盖所有可能性,代码用JAVA应该可以实现。

解决方案三:
不好意思,上面格式弄得不太好,您可以复制在WORD里调下格式,应该会更容易理解

解决方案四:

解决方案五:
昨天的思路不对,今天琢磨了一下,换了一种思路,请看下对不对,觉得对或者不对麻烦都回复下。

假设有9小球,小球上的号码分别是1-9,要分别放进3个篮子,可以放在同一个篮子里,也可以放在不同的篮子里,不考虑小球放入篮子的次序问题;
3个篮子分别是篮子1,篮子2,篮子3,在每种情况下,每个小球只能出现在3个篮子的其中一个,
创建9个int 参数 num1-num9每个代表1个小球,其值代表所在的篮子,比如说当num1=1时,意思是1号小球在1号篮子里;
然后写了9个嵌套的for循环,当全部等于1时,代表9个球都在篮子1里,当num9=2其他num=1时,代表1-8号小球在1号篮子里,9号小球在2号篮子里;
以此类推,最后是19683种情况,每种情况都保存在了list集合中,遍历打印即可。
我在下面的代码里加入了打印结果的代码。

import java.util.ArrayList;
import java.util.List;

public class TestArray {
public static List list = new ArrayList();// 保存所有的数组结果,用String代表每个数组里的值
static int num1 = 1;
static int num2 = 1;
static int num3 = 1;
static int num4 = 1;
static int num5 = 1;
static int num6 = 1;
static int num7 = 1;
static int num8 = 1;
static int num9 = 1;
static int caseNum = 1;

// 嵌套循环,num的取值为1-3,代表其在第几个数组里public static void main(String[] args) {    for (num1 = 1; num1 <= 3; num1++) {        for (num2 = 1; num2 <= 3; num2++) {            for (num3 = 1; num3 <= 3; num3++) {                for (num4 = 1; num4 <= 3; num4++) {                    for (num5 = 1; num5 <= 3; num5++) {                        for (num6 = 1; num6 <= 3; num6++) {                            for (num7 = 1; num7 <= 3; num7++) {                                for (num8 = 1; num8 <= 3; num8++) {                                    for (num9 = 1; num9 <= 3; num9++) {                                        addToList();                                    }                                }                            }                        }                    }                }            }        }    }    System.out.println(list.size());}// 保存对应结果的方法,分别判断num1-num9的值,放进对应的数组里(用String表示),然后把3个数组(用String表示)放进list里保存public static void addToList() {    Integer[] arrays = new Integer[] { num1 num2 num3 num4 num5 num6 num7 num8 num9 };    String array1 = """";    String array2 = """";    String array3 = """";    for (int i = 0; i < arrays.length; i++) {        switch (arrays[i]) {        case 1:            array1 += i + 1;            break;        case 2:            array2 += i + 1;            break;        case 3:            array3 += i + 1;            break;        }    }    String[] stringArray = new String[] { array1 array2 array3 };    list.add(stringArray);    System.out.print(""case"" + caseNum++ + ""==="" + ""set1="" + array1 + ""set2="" + array2 + ""set3="" + array3);    System.out.println();}

}

时间: 2024-08-03 18:27:07

算法难题设计出java代码或者伪代码,大牛请进。的相关文章

c语言-C代码帮看下思想,最好能写出Java代码,非常感谢

问题描述 C代码帮看下思想,最好能写出Java代码,非常感谢 2.*?slideing?block?chunking,?performance?is?a?big?issue?due?to?too?many?hash?lookup.? 3.?*/?? 4.static?int?file_chunk_sb(int?fd,?int?fd_ldata,?int?fd_bdata,?unsigned?int?*pos,?unsigned?int?*block_num,?? 5.?????????block

线程-懂java中lock锁的请进

问题描述 懂java中lock锁的请进 package thread; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; public class Foo { private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); private final Lock r = r

细致解读希尔排序算法与相关的Java代码实现_java

希尔排序(Shell's sort)是一种非常"神奇"的排序算法.说它"神奇",是因为没有任何人能清楚地说明它的性能到底能到什么情况.希尔排序因DL.Shell于1959年提出而得名.自从C. A. R. Hoare在1962年提出快速排序后,由于其更为简单,一般采用快速排序.但是,不少数学家们还是孜孜不倦地寻找希尔排序的最佳复杂度.作为普通程序员,我们可以学习下希尔的思路. 顺便说一句,在希尔排序出现之前,计算机界普遍存在"排序算法不可能突破O(n2)&

熟悉java和delphi的高手请进

问题描述 别人用delphi写了一个服务器,数据协议例如这样:TCommPack=PackedRecordStartFlag:Array[0..3]OfByte;//数据包开始标记,$FF,$FF,$FF,$FFSerialID:Cardinal;//序列号4个字节]PackID:Cardinal;//数据包编号,用于标记同属一个数据包不同分包DataSize:Cardinal;//数据内容大小End;这个服务器进行socket通信的时候,把整个结构发出去,如:socket.send(TComm

多种负载均衡算法及其Java代码实现

首先给大家介绍下什么是负载均衡(来自百科) 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备和 服务器的带宽.增加 吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web 服务器. FTP服务器. 企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务. 本文讲述的是"将外部发送来的请求均匀分配到对称结构中的某一台服务器上"的各种算法,并以Java代

多种负载均衡算法及其 Java 代码实现

首先给大家介绍下什么是负载均衡(来自百科) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备和 服务器的带宽.增加 吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web 服务器. FTP服务器. 企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务. 本文讲述的是"将外部发送来的请求均匀分配到对称结构中的某一台服务器上"的各种算法,并以Java代码

页面上有个textarea,在里面写java代码,然后如何动态编译执行这段java代码??

问题描述 页面上有个textarea,在里面写java代码,然后如何动态编译执行这段java代码?? 页面上有个textarea,在里面写java代码,然后如何动态编译执行这段java代码?? 解决方案 可以使用一些前端的模板引擎,java是编译的 解决方案二: ajax提交客户端输入的代码动态执行就行,看下面参考 ajax提交http://www.w3school.com.cn/jquery/ java中怎么执行字符串中的代码http://bbs.csdn.net/topics/3903563

c语言-关于数据结构的简单问题完整算法 C语言 假设用邻接矩阵存储无向图,设计算法,求出度数最大的顶点编号

问题描述 关于数据结构的简单问题完整算法 C语言 假设用邻接矩阵存储无向图,设计算法,求出度数最大的顶点编号 假设用邻接矩阵存储无向图,设计算法,求出度数最大的顶点编号 急急急紧急急急急急急急急急急急急急急急急急急急急急急 解决方案 先是存储结构后是伪代码,你想要算法就看注释吧~ Typedef struct Node { Char vex; //顶点 Int degree; //度数 }Node; Node ArrDegree[m]; //m+1为顶点个数 For(i =0; i ArrDeg

诊断 Java 代码:设计轻松的代码维护

设计 本月,Eric Allen 解释了在使代码更易于维护的同时,避免和控制无理由的变化怎么会是保持代码健壮性的关键.他集中讨论了诸如函数样式代码编写之类的概念,以及标记字段.方法和类的方法来处理并防止可变性.Eric 还解释了本任务中单元测试和重构的角色,并提供了协助实现重构的两个工具.在相关论坛中与作者和其他读者分享您对本文的看法.(您也可以单击本文顶部或底部的"讨论",访问该论坛.)有效调试源自良好的编程.设计易于维护的程序是程序员面临的最困难挑战之一,其部分原因在于程序通常并不