zoukankan      html  css  js  c++  java
  • 元音组会-动态规划

    package huisu;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。 字符串 s 按 字典序排列
     * 需要满足:对于所有有效的 i,s[i] 在字母表中的位置总是与 s[i+1] 相同或在 s[i+1] 之前。
     */
    /**
     * 长度为 i 且以第 j 个元音为结尾的字符串数量 = 长度为 i - 1 且以小于等于 j 元音为结尾的字符串数量的和
    
    dp[i][j]保存的状态为 长度为 i 且以大于等于 j 元音为结尾的字符串数量的和
    
    所以有状态转移方程
    
    dp[i][j] =dp[i-1][j] +dp[i][j-1];
    
     */
    public class countYuanyin {
        public static void main(String[] args) {
            int n=2;
            System.out.println(countVowelStrings(n));
        }
        public static int countVowelStrings(int n) {
            List<List<Character>> list=new ArrayList<>();
            char []s={'a','e','i','o','u'};
            if(n==0){
                return 0;
            }
            if(n==1){
                return 5;
            }
            int [][]dp=new int[n+1][5];
            dp[1][0]=1;
            dp[1][1]=2;
            dp[1][2]=3;
            dp[1][3]=4;
            dp[1][4]=5;
            for(int i=2;i<=n;i++){
                for(int j=0;j<5;j++){
                    if(j==0){
                        dp[i][j]=dp[i-1][j];
                    }else{
                        dp[i][j]=dp[i][j-1]+dp[i-1][j];
                    }
                }
            }
    
            
            return dp[n][4];
        }
    }
  • 相关阅读:
    Java反射----------------判断对象是否为空
    docker安装MongoDB创建用户,并用工具Robo连接简单CRUD
    Ubuntu 配置ip地址
    java时间的处理
    oracle my2_ep解密
    oracle 查询前7天的数据
    多表修改和多表删除
    迭代器遍历Map、List、Set
    冒泡排序
    Java有那两类异常?
  • 原文地址:https://www.cnblogs.com/jieyi/p/14129107.html
Copyright © 2011-2022 走看看