李敏  
          日歷
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345
          統(tǒng)計(jì)
          • 隨筆 - 1
          • 文章 - 40
          • 評(píng)論 - 4
          • 引用 - 0

          導(dǎo)航

          常用鏈接

          留言簿(1)

          文章分類

          文章檔案

          相冊(cè)

          收藏夾

          它山之石

          聚賢莊

          搜索

          •  

          最新評(píng)論

           
          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();   //方法二
               }

          }

          方法一:(利用數(shù)學(xué)當(dāng)中的多項(xiàng)式合并來解決----(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);
                  }

              }

          }

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


          package org.minli;

          import java.util.*;

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

              
          public NewNum() {
              }


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


              
          /**
               *添加數(shù)字
               
          */

              
          public NewNum addNum(String num) {

                  
          if (!checkNum(num)) {

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

                      temp.add(num);

                      
          return new NewNum(temp);
                  }


                  
          return null;
              }


              
          /**
               *檢查數(shù)字
               
          */

              
          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;
              }


              
          /**
               *組合數(shù)字
               
          */

              
          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) 評(píng)論(0)  編輯  收藏 所屬分類: 算法
           
          Copyright © 李敏 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 弋阳县| 德州市| 乌兰浩特市| 石首市| 吴旗县| 宜阳县| 绥芬河市| 大冶市| 朔州市| 连江县| 乐平市| 犍为县| 安国市| 南乐县| 龙门县| 和政县| 正镶白旗| 抚顺县| 四子王旗| 沧州市| 深州市| 阿克陶县| 苏尼特左旗| 太仆寺旗| 满城县| 县级市| 桃源县| 武义县| 彰化县| 布尔津县| 资溪县| 辛集市| 凌云县| 鄂尔多斯市| 镇远县| 唐山市| 和龙市| 清新县| 奉节县| 上思县| 阿坝|