java学习之暴力求解新郎新娘的问题
2016-05-03 19:49
429 查看
这篇文章的代码来源于一个故事,就是说主婚人忘记了每个对夫妇的名字,然后每个丈夫说出一个自己的妻子,但是新郎说的结果是错误的。我们可以根据这个规则来暴力求解
* 主要的思路就是每个新郎找到每一个新娘,但是要排除不符合规则的,还有就是同一个新娘不可能被两个人。
* 主要的思路就是每个新郎找到每一个新娘,但是要排除不符合规则的,还有就是同一个新娘不可能被两个人。
package com.jk.hw; /** * * @author jk * 这段代码说的是暴力求解新娘新郎的算法问题,这里大概说的就是有3对新人,然后每个新郎说自己的新娘是谁,但是说的是错的,我们可以根据这个规则来暴力求解 * 主要的思路就是每个新郎找到每一个新娘,但是要排除不符合规则的,还有就是同一个新娘不可能被两个人。 * */ public class test { /** * @param args */ public static void main(String[] args) { char[] husband = { 'A', 'B', 'C' }; char[] wife = { 'X', 'Y', 'Z' }; int res = HW(husband, wife); } private static int HW(char[] husband, char[] wife) { int i, j, k; int match = 0; // 3个for循环分别代表3个不同的新郎 for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { for (k = 0; k < 3; k++) { // 这里代表每个新娘只能分配给一个人 if (i != j && j != k && i != k) { // 不符合规则的 if (wife[i] == 'X' || wife[j] == 'Y' || wife[k] == 'Z') { match = 0; } else {// 找到了 match = 1; System.out.println(wife[i] + ":" + wife[j] + ":" + wife[k]); return match; } } } } } return 0; } }
相关文章推荐
- springcloud(第一篇)springcloud config 入门
- 《JAVA并发编程实战---读书笔记2》
- Java编写的 基于控制台的航班信息系统
- java基础算法之通过辗转相除求 最大公约数
- java String 类的常用方法
- JavaWeb学习笔记——Session
- java中栈和堆区别
- JavaWeb学习笔记——JSP(2)
- 掌握java中的三种代码块的定义及使用
- java数组与集合的转换
- Java连MySQL的驱动mysql-connector-java-5.1.21-bin.jar的安装方法
- JavaWeb学习笔记——JSP
- Java中equals和==的区别
- JavaWeb学习笔记——servlet
- Java 类中各成分加载顺序 和 内存中的存放位置
- Java前辈:学习J2EE流程中的经验和教训
- 多线程并发库高级应用 之 java5中的线程并发库--线程锁技术
- [Java]二叉树简要解析(持续学习和整理)
- 举例说明一个 java程序的加载,初始化以及运行过程
- java多线程并发库高级应用 之 多个线程之间共享数据的方式探讨