{"id":361,"date":"2023-06-17T23:01:32","date_gmt":"2023-06-17T15:01:32","guid":{"rendered":"https:\/\/www.gzlcy.cn\/?p=361"},"modified":"2023-06-17T23:01:32","modified_gmt":"2023-06-17T15:01:32","slug":"java%e5%9b%9e%e6%ba%af%e6%b3%95%e8%a7%a3%e5%86%b3%e5%85%a8%e6%8e%92%e5%88%97%e9%97%ae%e9%a2%98%e6%b5%81%e7%a8%8b%e8%af%a6%e8%a7%a3","status":"publish","type":"post","link":"http:\/\/www.gzlcy.cn\/?p=361","title":{"rendered":"Java\u56de\u6eaf\u6cd5\u89e3\u51b3\u5168\u6392\u5217\u95ee\u9898\u6d41\u7a0b\u8be6\u89e3"},"content":{"rendered":"<p>\u9898\u76ee\u63cf\u8ff0\uff1a<\/p>\n<p>\u7ed9\u5b9a\u4e00\u4e0d\u91cd\u590d\u7684\u6570\u7ec4\uff0c\u8fd4\u56de\u5176\u5177\u6709\u7684\u6240\u6709\u5168\u6392\u5217\uff08\u4f7f\u7528 List \u8fd4\u56de\uff09<\/p>\n<p>\u601d\u8def\uff1a<\/p>\n<p>\u4ee5\u6570\u7ec4 nums = [1, 2, 3] \u4e3a\u4f8b\uff0c\u5176\u5177\u6709\u7684\u89e3\u7a7a\u95f4\u53ef\u4ee5\u7528\u8fd9\u6837\u4e00\u68f5\u6811\u8868\u793a\uff0c\u76f8\u6bd4\u770b\u5230\u8fd9\u91cc\u5927\u5bb6\u5c31\u53ef\u4ee5\u77e5\u9053\uff0c\u8fd9\u662f\u4e00\u9053\u53ef\u4ee5\u7528 \u56de\u6eaf\u6cd5 \u89e3\u51b3\u7684\u9898\u3002<\/p>\n<p><img src='https:\/\/www.yht7.com\/upload\/image\/2022\/10\/03\/2022093015503765.png' alt='\u6570\u5b57\u6309\u987a\u5e8f\u6392\u5217_\u6709\u91cd\u590d\u6570\u5b57\u7684\u6392\u5217\u95ee\u9898_excel \u6570\u5b57 \u6392\u5217' \/><\/p>\n<p>\u96be\u70b9\uff1a\u5982\u4f55\u4fdd\u8bc1\u4e0d\u9009\u5230\u5df2\u7ecf\u4f7f\u7528\u8fc7\u7684\u6570\u7ec4\u5143\u7d20 \u2014\u2014 \u4f7f\u7528 used[] \u6570\u7ec4\u6807\u8bb0\u8be5\u5143\u7d20\u662f\u5426\u88ab\u4f7f\u7528\u8fc7<\/p>\n<p>\u7ec6\u8282\u8bf7\u770b\u4ee3\u7801\u6ce8\u91ca<\/p>\n<p><pre class=\"brush:java;\">    \/\/ \u7528\u4e8e\u5b58\u50a8\u7ed3\u679c\u7684\u6570\u7ec4\n    List&lt;List&gt; ans = new ArrayList&lt;List&gt;();\n    public List&lt;List&gt; permute(int[] nums) {\n        List list = new ArrayList();\n        boolean[] used = new boolean[nums.length];\n        backTrack(nums, list, used);\n        return ans;\n    }\n    \/\/ \u56de\u6eaf\u6cd5\u53c2\u6570\uff1a nums\u4e3a\u5f85\u6392\u5217\u6570\u7ec4\uff0c list\u5b58\u50a8\u5f53\u524d\u6392\u5217\u7ed3\u679c\uff0c used[]\u6807\u8bb0\u5f53\u524d\u5143\u7d20\u662f\u5426\u88ab\u4f7f\u7528\u8fc7\n    public void backTrack(int[] nums, List list, boolean[] used){\n        \/\/ \u56de\u6eaf\u6cd5\u9000\u51fa\u6761\u4ef6\uff0clist\u5927\u5c0f\u4e3anums[]\u957f\u5ea6\uff0c\u5373\u6240\u6709\u5143\u7d20\u90fd\u5df2\u52a0\u5165\u6392\u5217\n        if(list.size() == nums.length){\n            \/\/ \u52a0\u5165\u7ed3\u679c\u6570\u7ec4\uff0c\u6ce8\u610f\u8981 new \u65b0\u7684list (List\u4e3a\u6309\u6307\u9488\u6240\u6307\u5730\u5740\u5b58\u50a8\uff0c\u4e0d\u7136\u6bcf\u6b21\u52a0\u7684\u90fd\u662f\u540c\u4e00\u4e2a)\n            ans.add(new ArrayList(list));\n            return;\n        }\n        \/\/ \u5faa\u73af\u4ee5\u6bcf\u4e2a\u5143\u7d20\u5f00\u59cb\u6392\u5217\n        for(int i=0; i&lt;nums.length; i++){\n            \/\/ \u5143\u7d20\u672a\u88ab\u4f7f\u7528\u8fc7\u52a0\u5165\u6392\u5217\n            if(!used[i]){\n                \/\/ \u5728\u6392\u5217\u4e2d\u52a0\u5165\u5f53\u524d\u5143\u7d20\uff0c\u5e76\u5c06used[i]\u4fee\u6539\u4e3atrue\n                list.add(nums[i]);\n                used[i] = true;\n                \/\/ \u9012\u5f52\u8c03\u7528 backTrack\n                backTrack(nums, list, used);\n                \/\/ \u56de\u6eaf\uff0c\u53bb\u6389\u5f53\u524d\u5143\u7d20\uff0c\u5e76\u5c06used\u7f6e\u4e3afalse\n                list.remove(list.size() - 1);\n                used[i] = false;\n            }\n        }\n    }<\/pre>\n<\/p>\n<p>\u53d8\u5f0f\u4e00<\/p>\n<p>\u9898\u76ee\u63cf\u8ff0\uff1a\u7ed9\u5b9a\u4e00\u5177\u6709\u91cd\u590d\u6570\u5b57\u7684\u5e8f\u5217\uff0c \u8fd4\u56de\u6240\u6709\u4e0d\u91cd\u590d\u7684\u5168\u6392\u5217<\/p>\n<p>\u793a\u4f8b\uff1a<\/p>\n<p><img src='https:\/\/www.yht7.com\/upload\/image\/2022\/10\/03\/2022093015503766.png' alt='\u6709\u91cd\u590d\u6570\u5b57\u7684\u6392\u5217\u95ee\u9898_excel \u6570\u5b57 \u6392\u5217_\u6570\u5b57\u6309\u987a\u5e8f\u6392\u5217' \/><\/p>\n<p>\u8fd9\u9053\u9898\u662f\u5168\u6392\u5217\u7684\u53d8\u5f0f\u9898\uff0c \u53ea\u9700\u8981\u5bf9\u5168\u6392\u5217\u5199\u6cd5\u52a0\u5165\u5bf9\u91cd\u590d\u60c5\u51b5\u53bb\u9664\u7684\u5224\u65ad\u5373\u53ef\uff0c\u4e8e\u662f\u672c\u9898\u7684\u91cd\u5fc3\u8f6c\u79fb\u5230\u4e86\u5982\u4f55\u5224\u65ad\u662f\u5426\u4f1a\u4ea7\u751f\u91cd\u590d\u5e8f\u5217\u3002<\/p>\n<p>\u6211\u4eec\u53ef\u4ee5\u601d\u8003\u4ec0\u4e48\u60c5\u51b5\u4f1a\u4ea7\u751f\u91cd\u590d\u5e8f\u5217\uff0c \u6211\u4eec\u5148\u5bf9 nums[] \u6309\u4ece\u5c0f\u5230\u5927\u6392\u5e8f\uff0c \u9650\u5236\u6bcf\u6b21\u586b\u5165\u7684\u6570\u5b57\u90fd\u662f\u91cd\u590d\u6570\u5b57\u7684\u4ece\u5de6\u5230\u53f3\u7684\u7b2c\u4e00\u4e2a\u6570\u5b57<\/p>\n<p><pre class=\"brush:java;\">class Solution {\n    Boolean[] visit;\n    List&lt;List&gt; ans;\n    public List&lt;List&gt; permuteUnique(int[] nums) {\n        visit = new Boolean[nums.length];\n        Arrays.fill(visit, false);\n        List list = new ArrayList();\n        ans = new ArrayList();\n        Arrays.sort(nums);\n        backTrack(nums, list);\n        return ans;\n    }\n    public void backTrack(int[] nums, List list){\n        if(nums.length == list.size()){\n            ans.add(new ArrayList(list));\n            return;\n        }\n        for(int i=0; i 0 &amp;&amp; !visit[i-1] &amp;&amp; nums[i] == nums[i-1])){\n                continue;\n             }\n            list.add(nums[i]);\n            visit[i] = true;\n            backTrack(nums, list);\n            visit[i] = false;\n            list.remove(list.size() - 1);\n        }\n    }\n}<\/pre>\n<\/p>\n<p>\u53d8\u5f0f\uff1a\u5b57\u7b26\u6392\u5e8f<\/p>\n<p><pre class=\"brush:java;\">class Solution {\n    List ans = new ArrayList();\n    public String[] permutation(String s) {\n        \/\/ \u601d\u8def\uff1a \u56de\u6eaf\u6cd5\u5178\u578b\u4f8b\u9898 \u2014\u2014 \u542b\u91cd\u590d\u95ee\u9898\n        char[] array = s.toCharArray();\n        Arrays.sort(array);\n        Boolean[] used = new Boolean[array.length];\n        Arrays.fill(used, false);\n        backTack(array, used, new StringBuilder());\n        String[] res = new String[ans.size()];\n        for(int i=0; i&lt;ans.size(); i++){\n            res[i] = ans.get(i);\n        }\n        return res;\n    }\n    public void backTack(char[] array, Boolean[] used, StringBuilder sb){\n        if(array.length == sb.length()){\n            ans.add(new String(sb));\n        }\n        for(int i=0; i0 &amp;&amp; array[i]==array[i-1] &amp;&amp; !used[i-1]){\n               continue;\n           }\n            sb.append(array[i]);\n            used[i] = true;\n            backTack(array, used, sb);\n            sb.deleteCharAt(sb.length() - 1);\n            used[i] = false;\n        }\n    }\n}<\/pre>\n<\/p>\n<p>\u5230\u6b64\u8fd9\u7bc7\u5173\u4e8eJava\u56de\u6eaf\u6cd5\u89e3\u51b3\u5168\u6392\u5217\u95ee\u9898\u6d41\u7a0b\u8be6\u89e3\u7684\u6587\u7ae0\u5c31\u4ecb\u7ecd\u5230\u8fd9\u4e86,\u66f4\u591a\u76f8\u5173Java\u56de\u6eaf\u6cd5 \u5185\u5bb9\u8bf7\u641c\u7d22\u4e91\u6d77\u5929\u6559\u7a0b\u4ee5\u524d\u7684\u6587\u7ae0\u6216\u7ee7\u7eed\u6d4f\u89c8\u4e0b\u9762\u7684\u76f8\u5173\u6587\u7ae0\u5e0c\u671b\u5927\u5bb6\u4ee5\u540e\u591a\u591a\u652f\u6301\u4e91\u6d77\u5929\u6559\u7a0b\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ecen\u4e2a\u4e0d\u540c\u5143\u7d20\u4e2d\u4efb\u53d6m\uff08m\u2264n\uff09\u4e2a\u5143\u7d20\uff0c\u6309\u7167\u4e00\u5b9a\u7684\u987a\u5e8f\u6392\u5217\u8d77\u6765\uff0c\u53eb\u505a\u4ecen\u4e2a\u4e0d\u540c\u5143\u7d20\u4e2d\u53d6\u51fam\u4e2a\u5143\u7d20\u7684\u4e00\u4e2a\u6392\u5217\u3002\u5f53m=n\u65f6\u6240\u6709\u7684\u6392\u5217\u60c5\u51b5\u53eb\u5168\u6392\u5217\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[720],"_links":{"self":[{"href":"http:\/\/www.gzlcy.cn\/index.php?rest_route=\/wp\/v2\/posts\/361"}],"collection":[{"href":"http:\/\/www.gzlcy.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gzlcy.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gzlcy.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gzlcy.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=361"}],"version-history":[{"count":0,"href":"http:\/\/www.gzlcy.cn\/index.php?rest_route=\/wp\/v2\/posts\/361\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.gzlcy.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gzlcy.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=361"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gzlcy.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}