需要找到正确的28三元组

时间:2012-12-20 10:33:08

标签: java

大家好,我在InterviewSteet网站上发现了一些有趣的问题。我对问题有些疑惑。请帮助我理解问题。我得到了35个三元组,但预计样本中只有28个。我添加了35triples输出。请帮我找到28个三元组。 扫管笏是我理解问题的错误。我

问题:

  

有一个整数数组d,它不包含两个以上   具有相同价值的元素。有多少不同的上升三元组(d [i]   < d [j]< d [k],i< j< k)在场?

输入格式

  

第一行包含表示元素数量的整数N.   在数组中。接下来是包含N个整数的单行   由单个空格分隔,没有前导/尾随空格

输出格式:

  

一个整数,表示不同的递增三元组的数量   出现在数组中

约束:

N <= 10^5
Every element of the array is present at most twice
Every element of the array is a 32-bit positive integer

示例输入:

6
1 1 2 2 3 4

示例输出:

 4

说明: 不同的三胞胎是

(1,2,3)
(1,2,4)
(1,3,4)
(2,3,4)

我的意见:

10
1 1 5 4 3 6 6 5 9 10

我的输出:

35

说明: 不同的三胞胎是

(1,3,4)

(1,3,5) (1,3,6) (1,3,9) (1,3,10) (1,4,5) (1,4,6) (1,4,9) (1,4,10) (1,5,6) (1,5,9) (1,5,10) (1,6,9) (1,6,10) (1,9,10) (3,4,5) (3,4,6) (3,4,9) (3,4,10) (3,5,6-) (-3,5,9-) (3,5,10) (3,6,9) (3,6,10) (3,9,10) (4,5,6) (4,5,9) (4,5,10) (4,6,9) (4,6,10) (4,9,10) (5,6,9) (5,6,10) (5,9,10) (6,9,10)

预期产出:

28

我收到35 triples,但28是正确答案。扫管笏是我的错误?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您正在计算n的总可能组合! /(n-3)!3!。 但是你必须删除那些不按升序排列的三元组。