牛客网编程巅峰挑战赛青铜白银黄金组第3场
哎,就只会做一题,我好菜啊!
第一题:
public class Solution {
public int Minimumdays (int n, int[] DEF) {
// write code here
Arrays.sort(DEF);
int currDay = 0;
for(int i = 0; i < n; ++i){
if(currDay >= DEF[i]){
currDay++;
}else{
currDay = DEF[i] + 1;
}
}
return currDay - 1;
}
}第二题:快速幂
public class Solution {
/**
* 返回c[n]%1000000007的值
* @param n long长整型 即题目中的n
* @return int整型
*/
public int Answerforcn (long n) {
// write code here
// return 14 * pow(15, n)
long MOD = 1000000007L;
long x = 14L;
long y = 15L;
long res = 1;
--n;
while(n > 0){
if((n & 1) == 1){
res = (res * y ) % MOD;
}
y = y * y % MOD;
n >>= 1;
}
return (int)((14 * res) % MOD);
}
}第三题: 先BFS构建树结构,再DFS赋值并计算每个节点与其父节点的异或和,但是使用节点对象重建树结构会超内存!
import java.util.*;
public class Solution {
private class TreeNode{
public int val;
public TreeNode[] children;
public TreeNode(int k, int v){
val = v;
children = new TreeNode[k];
}
}
private TreeNode bfs(int k, int[] a){
// create tree;
if(a == null){return null;}
int len = a.length;
TreeNode[] nodes = new TreeNode[len];
for(int i = 0; i < a.length; ++i){
nodes[i] = new TreeNode(k, -1);
}
for(int i = 0; i < len; ++i){
for(int j = 0; j < k; ++j){
if(i * k + j + 1 < len){
nodes[i].children[j] = nodes[i * k + j + 1];
}else{
break;
}
}
}
return nodes[0];
}
private void dfs(TreeNode root, int[] a, int[] count, long[] res, int fv){
if(root == null || count[0] >= a.length){return;}
root.val = a[count[0]++];
res[0] += (root.val ^ fv);
for(TreeNode child: root.children){
if(child != null){
dfs(child, a, count, res, root.val);
}
}
}
/**
*
* @param k int整型 表示完全k叉树的叉数k
* @param a int整型一维数组 表示这棵完全k叉树的Dfs遍历序列的结点编号
* @return long长整型
*/
public long tree6 (int k, int[] a) {
if(a == null || a.length == 0){return 0;}
// write code here
int[] count = {0};
long[] res = {0L};
TreeNode root = bfs(k, a);
dfs(root, a, count, res, a[0]);
return res[0];
}
/*
不通过
您的代码已保存
请检查是否存在数组越界等非法访问情况
case通过率为80.00%
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at Solution$TreeNode.<init>(Solution.java:11)
at Solution.bfs(Solution.java:21)
at Solution.tree6(Solution.java:57)
at Main.main(Main.java:27)
*/
}
京公网安备 11010502036488号