LeetCode(四)
2021/8/29 23:36:28
本文主要是介绍LeetCode(四),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 打印一个字符穿的全部子序列:
-
package com.model.recursion; import org.omg.PortableServer.LIFESPAN_POLICY_ID; import java.util.ArrayList; import java.util.List; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/8/29 21:52 * 动态规划查找到一个字符串的所有子串 */ public class RecursionDemo01 { public static void main(String[] args) { String str="abc"; ArrayList<String> resList = new ArrayList<>(); getAllStr(str, 0, "",resList); for (String string:resList){ System.out.println(string); } } public static void getAllStr(String str,int index,String path,List<String> resList){ if (index==str.length()){ resList.add(path); return; } getAllStr(str, index+1, path+str.charAt(index),resList); getAllStr(str, index+1, path,resList); } }
-
-
打印出一个字符串的全排列:
-
package com.model.recursion; import java.util.ArrayList; import java.util.List; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/8/29 22:29 * 打印一个字符串的全排列 */ public class RecursionDemo02 { public static void main(String[] args) { char[] array="abc".toCharArray(); swap(array, 0, 2); // System.out.println(array); ArrayList<String> list = new ArrayList<>(); arrangement(array, 0,list); for (String str:list){ System.out.println(str); } } public static void arrangement(char[] array, int index, List<String> resList){ if (index==array.length){ resList.add(new String(array)); return; } for (int i = index; i <array.length; i++) { swap(array, index, i); arrangement(array, index+1,resList); swap(array, i,index); } } public static void swap(char[] array,int left,int right){ char l = array[left]; char r = array[right]; array[left]=r; array[right]=l; } }
-
package com.model.recursion; import java.util.ArrayList; import java.util.List; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/8/29 22:29 * 打印一个字符串的全排列,要求无重复的 */ public class RecursionDemo03 { public static void main(String[] args) { char[] array="abca".toCharArray(); // swap(array, 0, 2); //// System.out.println(array); ArrayList<String> list = new ArrayList<>(); arrangement(array, 0,list); for (String str:list){ System.out.println(str); } } public static void arrangement(char[] array, int index, List<String> resList){ if (index==array.length){ resList.add(new String(array)); return; } boolean[] arr = new boolean[26]; for (int i = index; i <array.length; i++) { if (!arr[array[i]-'a']) { arr[array[i]-'a']=true; swap(array, index, i); arrangement(array, index + 1, resList); swap(array, index, i); } } } public static void swap(char[] array,int left,int right){ char l = array[left]; char r = array[right]; array[left]=r; array[right]=l; } }
-
-
这篇关于LeetCode(四)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain
- 2024-06-19EntBot.ai: AI Website Chatbot for Product Guides and Development Doc
- 2024-06-17zero-shot-learning-definition-examples-comparison
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置