社区
数据结构与算法
帖子详情
数组数据排列的问题
myqoo
2009-01-01 11:31:00
遇到个程序,可以抽象成个这么个问题:
往一个13*8的数组(默认值都为0)里随机添加1,2,3三种数字,不必全放满,但相同数字横方向或竖方向最多只能有两个相邻,比如下面的样子:
0 0 1 1 0
0 2 0 0 0
0 2 0 0 0
0 0 0 3 3
但不允许这个样子:
0 0 1 1 1
0 2 0 0 0
0 2 0 0 0
0 2 3 3 3
请问有没有比较好的算法?
...全文
100
5
打赏
收藏
数组数据排列的问题
遇到个程序,可以抽象成个这么个问题: 往一个13*8的数组(默认值都为0)里随机添加1,2,3三种数字,不必全放满,但相同数字横方向或竖方向最多只能有两个相邻,比如下面的样子: 0 0 1 1 0 0 2 0 0 0 0 2 0 0 0 0 0 0 3 3 但不允许这个样子: 0 0 1 1 1 0 2 0 0 0 0 2 0 0 0 0 2 3 3 3 请问有没有比较好的算法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq675927952
2009-01-04
打赏
举报
回复
不懂,学习!
绿色夹克衫
2009-01-04
打赏
举报
回复
恩.2楼的方法很好,顶一个!
lz是要解决数独问题么?
猫已经找不回了
2009-01-03
打赏
举报
回复
mark,
tailzhou
2009-01-02
打赏
举报
回复
你这个题目比八皇后问题要简单;可以有很高效的解法;
首先改变一下题目的描述:
"往一个13*8的数组,里随机添加0(相当于不填写),1,2,3四种数字,必须全放满,但相同数字(除0外)横方向或竖方向最多只能有两个相邻."
可以看到,重新描述后的题目跟原命题是一样的;
我们按照先上后下,先左后右的次序来添加数字;
假设当前需要填的位置为[i,j],由于能填写的数字只受到已填写的横方向([i,j-1],[i,j-2])或竖方向([i-1,j],[i-2,j])两个限制,所以最多只有1,2,3之中的2个数字不能填写,所以总能填写当前位置;
也就是不象八皇后问题那样需要回溯;
从当前位置能填写的数字中(包含0,填0相当于不填写),随机挑选(可以使用随即数的算法选一个)一个填上即可;
「已注销」
2009-01-02
打赏
举报
回复
LZ可以参考八皇后问题来做啊,
java
数组
的
排列
组合_java
数组
排列
组合
问题
汇总
无重复元素的
数组
,求全
排列
;2. 有重复元素的
数组
,求全
排列
;3. 无重复元素的
数组
,求组合【子集】;4. 有重复元素的
数组
,求组合;以上四类题,可以用统一的模板实现,如下所示:/**【组合&&
排列
】*把一...
Java实现蓝桥杯VIP算法训练
数组
逆序
排列
试题 算法训练
数组
逆序
排列
资源限制 时间限制:1.0s 内存限制:256.0MB
问题
描述 编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型
数组
中。当用户输入0时,表示输入结束。然后程序将把这个...
Java int
数据
类型
数组
降序
排列
的方法
前言:使用Java对int
数据
类型
数组
降序
排列
没有C++那样方便但是也是可以简单实现的。 方法一: public class Main { public static void main(String[] args) { int[] num = {1, 9, 2, 6, 5}; //定义一个int
数组
...
二维
数组
的
排列
组合
给出一个类型二维
数组
,每个
数组
中是一个类目(如[["红色", "绿色"], ["大号", "小号"]]),返回所有类型的组合结果([["红色", "大号"], ["红色", "小号"], ["绿色", "大号"], ["绿色", "小号"]]) 题目二 输入 [[A,...
java 对多个
数组
进行
排列
组合操作
java 对多个
数组
进行
排列
组合操作
数据结构与算法
33,028
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章