大家好,我在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
是正确答案。扫管笏是我的错误?
答案 0 :(得分:0)
在这种情况下,您正在计算n的总可能组合! /(n-3)!3!。 但是你必须删除那些不按升序排列的三元组。