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-12-24怎么切换 Git 项目的远程仓库地址?-icode9专业技术文章分享
- 2024-12-24怎么更改 Git 远程仓库的名称?-icode9专业技术文章分享
- 2024-12-24更改 Git 本地分支关联的远程分支是什么命令?-icode9专业技术文章分享
- 2024-12-24uniapp 连接之后会被立马断开是什么原因?-icode9专业技术文章分享
- 2024-12-24cdn 路径可以指定规则映射吗?-icode9专业技术文章分享
- 2024-12-24CAP:Serverless?+AI?让应用开发更简单
- 2024-12-23新能源车企如何通过CRM工具优化客户关系管理,增强客户忠诚度与品牌影响力
- 2024-12-23原创tauri2.1+vite6.0+rust+arco客户端os平台系统|tauri2+rust桌面os管理
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享