全部评论
第一题: public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for(int i = 0; i<n; i++) { arr[i] = sc.nextInt(); } System.out.println(solve(arr.length)); } public static int solve(int index) { if(index == 1) { return 0; } else if(index == 2) { return 1; } else { for(int i = index; i > 0; i--) { return (i-1)*(solve(i-1)+solve(i-2)); } } return -1; } }
第二题示例是不是有错啊,alibaba那个示例想不懂怎么输出li的
第一题:给一个数字N,一个数组a。求全排列的数量,使得每一个排列满足 a[i] 不在位置 i 上
这里的数组有可能有重复数字的,比如第i个数的数不能是ai,第j个数的不能是aj,这里ai=aj也是有可能的,这题就应该是用容斥+dp解
第二题示例都过了。感觉思路没问题,但是还是只能过0.2
来个大佬贴一下今晚上的题目呗,或者简单说说
坐等大佬解答
坐等大佬解答啊
大佬求贴代码,学习一下
第一题怎么做啊,回溯剪枝超时,只过30%
人均0.5?
坐等题解+1
第一题是错排公式:D(n) = (n-1) [D(n-2) + D(n-1)]
谁知道阿里笔试多少可以面试啊。我刚做完笔试,发现我官网简历评估灰了😂
我这个错排公式30% private static void getRes2(int number, int[] line,long[] value) { for(int i=2;i<=number;i++) { if (i == 2) value[i] = 1; else if (i == 3) value[i] = 2; else value[i] = (long) (((i - 1) * (value[i - 2] + value[i - 1])) % (10e9 + 7)); } } 哪里错了啊?
第一题是leetcode 634 会员题,原题
在组合数学中,如果一个排列中所有元素都不在原先的位置上,那么这个排列就被称为错位排列。 给定一个从 1 到 n 升序排列的数组,你可以计算出总共有多少个不同的错位排列吗? 由于答案可能非常大,你只需要将答案对 109+7 取余输出即可。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-the-derangement-of-an-array 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
第二题 AC自动机经典例题这...这波是我血亏啊
两道题分别是啥啊
第二题题解 ac自动机简单应用题.. https://blog.csdn.net/johsnows/article/details/107897535
相关推荐