算法
各大算法的题目
ZJHFOREVERZJ
心里有海,永远向阳。
展开
-
动态规划解决字符串分割
字符串分割 问题描述: 方法:动态规划 状态: 子状态:前1,2,3,…,n个字符能否根据词典中的词被成功分词 F(i): 前i个字符能否根据词典中的词被成功分词 状态递推: F(i): true{j <i && F(j) && substr[j+1,i]能在词典中找到} OR false 在j小于i中,只要能找到一个F(j)为true,并且从j+1到i之间的字符能在词典中找到,则F(i)为true. 初始值:对于初始值无法确定的,可以引入一个不代表实际意义的空状态原创 2022-02-03 15:23:20 · 400 阅读 · 0 评论 -
动态规划解决三角矩阵
三角矩阵 问题描述: 方法一:动态规划 方法:动态规划 状态: 子状态 :从(0,0)到(1,0),(1,1),(2,0),…(n,n)的最短路径和 F(i,j): 从(0,0)到(i,j)的最短路径和 状态递推: F(i,j) = min( F(i-1, j-1), F(i-1, j)) + triangle[i][j] 初始值: F(0,0) = triangle[0][0] 返回结果: min(F(n-1, i)) import java.util.ArrayList; public class原创 2022-02-03 18:29:51 · 492 阅读 · 0 评论 -
动态规划求解路径总数
动态规划求解路径 问题描述: 代码: import java.util.*; public class Solution { /** * * @param m int整型 * @param n int整型 * @return int整型 */ public int uniquePaths (int m, int n) { // write code here int[][] pathNum=new in原创 2022-02-03 21:19:06 · 593 阅读 · 0 评论 -
贪心算法之选择排序
贪心算法之选择排序 public static void swap(int[] arr,int i,int j){ int tmp=arr[i]; arr[i]=arr[j]; arr[j]=tmp; } public static void selectSort(int[] arr){ //i:未排序数据的起始位置 for(int i=0;i<arr.length;i++){ int minIdx=i; //从所有未排序的原创 2022-02-06 15:22:42 · 637 阅读 · 0 评论 -
贪心算法之分割平衡字符串
问题: 代码: class Solution { public int balancedStringSplit(String s) { int cnt=0; int balance=0; for(int i=0;i<s.length();i++){ if(s.charAt(i)=='R') --balance; else if (s.charAt(i)=原创 2022-02-06 15:58:37 · 336 阅读 · 0 评论