CrazyCodePlayer.. 2021-11-27 15:32 采纳率: 44.4%
浏览 251

JAVA算法题半递增序列个数

一个 1 到 n 的排列被称为半递增序列,是指排列中的奇数位置上的值单调递增,偶数位置上的值也单调递增。

img

  • 写回答

1条回答 默认 最新

  • 钰娘娘 2021-11-27 17:26
    关注

    不要被题目骗了,其实这个问题就是n选n/2的组合问题,组合可以用杨辉三角推导,然后就是求余a=b+c=>a%k=(b%k+c%k)%k

    public class Main {
        public static void main(String[] args) {
            Main main = new Main();
            System.out.println(main.getCombine(10000));
        }
    
        private int getCombine(int n){
            if(n==1)
                return 1;
    
            int k = n/2;
            int[] dp = new int[n+1];
            for(int i = 1; i <= n; i++){
                dp[0]=1;
                dp[i]=1;
                for(int j = i-1; j>=1; j--){
                    dp[j]=dp[j-1]+dp[j];
                    dp[j]%= (1e9+7);
                }
            }
    
            return dp[k];
        }
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月27日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据