首页 > 其他分享 >LeetCode 1359. Count All Valid Pickup and Delivery Options

LeetCode 1359. Count All Valid Pickup and Delivery Options

时间:2024-08-13 22:27:53浏览次数:5  
标签:Count P2 1359 P1 p1 d1 D2 Options D1

原题链接在这里:https://leetcode.com/problems/count-all-valid-pickup-and-delivery-options/description/

题目:

Given n orders, each order consists of a pickup and a delivery service.

Count all valid pickup/delivery possible sequences such that delivery(i) is always after of pickup(i). 

Since the answer may be too large, return it modulo 10^9 + 7.

Example 1:

Input: n = 1
Output: 1
Explanation: Unique order (P1, D1), Delivery 1 always is after of Pickup 1.

Example 2:

Input: n = 2
Output: 6
Explanation: All possible orders: 
(P1,P2,D1,D2), (P1,P2,D2,D1), (P1,D1,P2,D2), (P2,P1,D1,D2), (P2,P1,D2,D1) and (P2,D2,P1,D1).
This is an invalid order (P1,D2,P2,D1) because Pickup 2 is after of Delivery 2.

Example 3:

Input: n = 3
Output: 90

Constraints:

  • 1 <= n <= 500

题解:

Consider we already have n - 1 pairs sequence, for the nth pair, pickup we have 2 * n - 1 positions. delivery we have 2 * n positions.

e.g. n - 1 = 1, we have p1, d1 sequence. For n = 2, we have (2 * 2 -1) = 3 positions to place p2.

_, p1, d1,

p1, _, d1,

p1, d1, _,

For d2, assume, we already placed p2, we have 2 * 2 = 4 positions to place d2.

assume, we put p2, p1, d1. there are *, p2, * p1, *, d1, * options. * represent the possible places to place d2.

So, we have (2 * n - 1) * 2 * n permutations. But d2 must come after p2, so need to divide by 2 and we get (2 * n - 1) * n.

Time Complexity: O(n).

Space: O(1).

AC Java:

 1 class Solution {
 2     public int countOrders(int n) {
 3         long mod = (long)1e9 + 7;
 4         long res = 1;
 5         for(int i = 2; i <= n; i++){
 6             res = res * (i * 2 - 1) * i % mod;
 7         }
 8 
 9         return (int)res;
10     }
11 }

 

标签:Count,P2,1359,P1,p1,d1,D2,Options,D1
From: https://www.cnblogs.com/Dylan-Java-NYC/p/18357834

相关文章

  • Odoo search、name_search、search_count、search_read、read_group
    主要包括以下几个方法及主要用途:search():搜索视图中调用search_count():视图中计算记录数时调用name_search():many2one字段搜索时调用search_read():many2one点开搜索更多时调用read_group():搜索视图分组时调用search()search方法中包含有几个子方法 根据domian取查......
  • 深入解析Node.js中的fs.watch:options与listener详解
    在Node.js中,fs.watch方法是一个功能强大的文件系统监控工具,它允许我们对文件或目录进行实时监控,并在文件或目录发生变化时触发相应的操作。在使用fs.watch时,两个关键的部分是options对象和listener回调函数。本文将详细讲解这两个部分,帮助读者更好地理解和使用fs.watch。一......
  • 在 SQL 中,怎样使用聚合函数(如 SUM、AVG、COUNT 等)来计算数据的总和、平均值和数量?
    在SQL中,可以使用聚合函数来计算数据的总和、平均值和数量。以下是一些常用的聚合函数的示例:SUM函数:计算指定列的总和。SELECTSUM(column_name)FROMtable_name;AVG函数:计算指定列的平均值。SELECTAVG(column_name)FROMtable_name;COUNT函数:计算指定列的数......
  • OFtutorial02_commandLineArgumentsAndOptions
    OFtutorial2.CargList类如图包含很多函数,常用的addNote(输出字符串),noParallel(去掉基类中的并行选项),addBoolOption,addOption(增加选项)源码#include"fvCFD.H"#argc即argumentcount的缩写,保存程序运行时传递给主函数的参数个数;argv即argumentvector的缩写,保存程序运行......
  • ftrace的trace_options
    ftrace中的trace_options选项用于控制追踪数据的收集和显示方式。你可以通过/sys/kernel/debug/tracing/trace_options文件来设置这些选项。每个选项代表了不同的追踪行为或输出格式。以下是一些常见的trace_options选项及其含义:overwrite:含义:当启用此选项时,如果缓冲......
  • 洛谷P1596 [USACO10OCT] Lake Counting S
    这种普通走迷宫的题,还是最好用bfs,毕竟复杂度是比dfs低的。但我这用dfs讲解。具体思路就不做详解,看代码注释。Code#include<bits/stdc++.h>usingnamespacestd;intn,m;chara[105][105];intdx[8]={0,1,-1,0,-1,1,-1,1};//搜索的八个方向常量,xintdy[8]={1,0......
  • Hadoop3.4.0跑wordcount程序报错:org.apache.hadoop.mapreduce.v2.app.MRAppMaster
    部署完Hadoop3.4.0HA后跑wordcount程序报错,在日志文件里 http://rsnode:8042/logs/userlogs 里看到报错日志说不能加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster网上给的办法大多都是让执行hadoopclasspath然后把那一长串配置到 mapred-site.xml。如图 ......
  • COUNTING-SORT(计数排序) and
    计数排序             计数排序假设n个输入元素(适用于小范围区间)中的每一个都是在0到k区间内的一个整数,其中k为某个整数。当k=O(n)时,排序的运行时间为.    计数排序的基本思想:对每一个输入的元素x,确定小于x的元素个数。利用这一信息,就可以直接把x......
  • 解决|RuntimeWarning: invalid value encountered in double_scalars W = numer / d
    报错:RuntimeWarning:invalidvalueencounteredindouble_scalarsW=numer/denom我自查发现代码包含levene和t检验部分,且涉及多步除法。一旦分母为0或NaN就会出现上述报错在chatgpt帮我过了一遍所有可能的分母时,发现就两种情况:1-样本数异常(为0或为1——自由度为0),我的数......
  • CodeForces 1132B Discounts
    题目链接:CodeForces1132B【Discounts】思路    因为使用coupons购买q[i]块巧克力,不需要付最便宜的那块巧克力的钱,所以为了使得优惠最大化,所以可以在使用优惠券的时候购买最贵的p[i]块巧克力,所以计算所有巧克力价格高之和和排序后很快能得到答案。代码#include<cst......