李敏  
          日歷
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345
          統計
          • 隨筆 - 1
          • 文章 - 40
          • 評論 - 4
          • 引用 - 0

          導航

          常用鏈接

          留言簿(1)

          文章分類

          文章檔案

          相冊

          收藏夾

          它山之石

          聚賢莊

          搜索

          •  

          最新評論

           
          public class Test {

               
          /** *//** *//** *//**
                * 
          @param args
                
          */

                
          public static void main(String[] args) {
                    
          // TODO Auto-generated method stub
                    new QueenOne(new String[] "1""2""3""4" }).run();  //方法一
           
                  
          new QueenTwo(new String[] "1""2""3""4" }).run();   //方法二
               }

          }

          方法一:(利用數學當中的多項式合并來解決----(a+b+c)*(a+b+c)*(a+b+c) )

          package org.minli;

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

          public class QueenOne {
              
          private String[] num;

              
          public QueenOne() {
              }


              
          public QueenOne(String[] num) {
                  
          this.num = num;
              }


              
          public void run(String[] nums) {
                  List numsList 
          = Arrays.asList(nums);

                  
          for (int i = 1; i < nums.length; i++{
                      numsList 
          = join(numsList, nums);
                  }


                  printNums(numsList);
              }


              
          public List join(List<String> dest, String[] src) {

                  List tempList 
          = new ArrayList();

                  
          for (String str : src) {
                      
          for (String temp : dest) {
                          
          if (temp.indexOf(str) == -1{
                              tempList.add(temp 
          + str);
                          }

                      }

                  }

                  
          return tempList;
              }


              
          public void printNums(List<String> numsList) {
                  
          for (String str : numsList) {
                      System.out.println(str);
                  }

              }

          }

          方法二:(利用常規思路)  (1,2,3,4)


          package org.minli;

          import java.util.*;

          class NewNum {
              
          // 保存數字
              private List<String> nums = new ArrayList<String>();

              
          public NewNum() {
              }


              
          private NewNum(List nums) {
                  
          this.nums = nums;
              }


              
          /**
               *添加數字
               
          */

              
          public NewNum addNum(String num) {

                  
          if (!checkNum(num)) {

                      List
          <String> temp = new ArrayList<String>(nums);

                      temp.add(num);

                      
          return new NewNum(temp);
                  }


                  
          return null;
              }


              
          /**
               *檢查數字
               
          */

              
          public boolean checkNum(String targetNum) {
                  
          for (String num : nums) {
                      
          if (num.equals(targetNum)) {
                          
          return true;
                      }

                  }

                  
          return false;
              }


              
          /**
               *格式化輸出
               
          */

              
          public String toString() {
                  StringBuilder temp 
          = new StringBuilder();

                  
          for (String num : nums) {
                      temp.append(num 
          + " ");
                  }

                  
          return temp.toString();
              }

          }


          public class QueenTwo {
              
          private String[] nums;

              
          public QueenTwo() {
              }


              
          public QueenTwo(String[] nums) {
                  
          this.nums = nums;
              }


              
          /**
               *組合數字
               
          */

              
          private List makeNum(List<NewNum> allNewNums, int count) {
                  
          if (count == 1)
                      
          return allNewNums;

                  List
          <NewNum> newAllNewNums = new ArrayList<NewNum>();

                  
          for (NewNum newNum : allNewNums) {

                      
          for (String num : nums) {
                          
          if (!newNum.checkNum(num)) {

                              NewNum temp 
          = newNum.addNum(num);

                              newAllNewNums.add(temp);
                          }

                      }

                  }


                  
          return makeNum(newAllNewNums, count - 1);
              }


              
          /**
               *打印
               
          */

              
          public void print(List<NewNum> allNewNums) {

                  
          for (NewNum newNum : allNewNums) {
                      System.out.println(newNum);
                  }

              }


              
          public void run() {
                  
          for (String num : nums) {

                      NewNum newNum 
          = new NewNum();

                      List
          <NewNum> allNewNums = new ArrayList<NewNum>();
                      allNewNums.add(newNum.addNum(num));

                      allNewNums 
          = makeNum(allNewNums, nums.length);

                      print(allNewNums);
                  }

              }


          }
          posted on 2009-02-09 00:44 李敏 閱讀(346) 評論(0)  編輯  收藏 所屬分類: 算法
           
          Copyright © 李敏 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 井研县| 科尔| 阿克| 蛟河市| 碌曲县| 故城县| 保亭| 兴业县| 哈巴河县| 平远县| 西乡县| 乐亭县| 乌兰浩特市| 罗源县| 平阳县| 沁阳市| 吉首市| 宕昌县| 巴林左旗| 和政县| 伊吾县| 武强县| 海晏县| 潼南县| 来安县| 游戏| 来宾市| 义乌市| 北川| 宜州市| 扎兰屯市| 平利县| 湾仔区| 永春县| 读书| 西华县| 绥棱县| 马山县| 隆德县| 通州区| 新民市|