Permutation Sequence

来源:互联网 发布:程序员必备的物品 编辑:程序博客网 时间:2024/05/22 00:30
import java.util.HashSet;import java.util.Set;public class Solution {    public int count;    public String ret;    public int num;    public String getPermutation(int n, int k) {        // Start typing your Java solution below        // DO NOT write main() function    Set<Integer> hashSet=new HashSet<Integer>();    //System.out.println("hah"+hashSet);    num = k;    count = 1;    ret = new String();    StringBuilder sb = new StringBuilder();    dfs(0,n,hashSet,sb);    return ret;    }    private void dfs(int now,int n,Set set,StringBuilder sb){        //System.out.println(now+" "+n+" "+set+" "+sb);    if(now==n){            if(num==count){            ret=sb.toString();            //System.out.println("count:"+count+" "+ret);            count++;            }            else count++;       }       else{           for(int i=1;i<=n;i++){               if(set.contains(i))continue;               else{                   set.add(i);                   sb.append(i);                   dfs(now+1,n,set,sb);               }                              sb.deleteCharAt(sb.length()-1);               set.remove(i);           }       }    }    public static void main(String[] args){    Solution s = new Solution();    String t = s.getPermutation(5,37);    System.out.print(t);    }}

小数据能通过,大数据不行。


暂时放着

原创粉丝点击