网易笔试AC答案,顺便求个剪纸片答案
import java.util.ArrayList;
import java.util.Scanner;
public class Main_Coffee {
/*
*
4
0 10
1 2 3 4 5 6 7 8 9 10
1 15
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
1 7
5 9 13 17 21 25 29
1 0
* */
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
ArrayList<Integer> res = new ArrayList<>();
for (int i = 0; i < num; i++) {
int gap = sc.nextInt();
int fixed = sc.nextInt();
int[] days = new int[fixed];
for (int j = 0; j < fixed; j++) {
days[j] = sc.nextInt();
}
res.add(getInsertNum(days, gap) + fixed);
}
for (int tmp : res)
System.out.println(tmp);
}
static int getInsertNum(int[] days, int gap) {
int count = 0;
for (int i = 0; i < days.length - 1; i++) {
count += getDrinkNumOfInterval(days[i], days[i + 1], gap);
}
if (days.length != 0) {
count += getDrinkNumOfEndPoint(1, days[0], gap);
count += getDrinkNumOfEndPoint(days[days.length - 1], 30, gap);
} else {
count += getDrinkNumOfEndPoint(1, 30, gap);
count++;
}
return count;
}
static int getDrinkNumOfInterval(int start, int end, int gap) {
//不计算首末端点
int inc = gap + 1;
int count = 0;
while (true) {
start += inc;
int tmp = start + inc;
if (end < tmp)
break;
count++;
}
return count;
}
static int getDrinkNumOfEndPoint(int start, int end, int gap) {
//考虑首末端点
int inc = gap + 1;
int count = (end - start) / inc;
return count;
}
}
import java.util.Scanner;
public class Main {
/*
*
* 3
1
4
7
* */
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] array = new int[num];
for (int i = 0; i < num; i++) {
array[i] = sc.nextInt();
}
for (int i = 0; i < num; i++) {
if (isHuiWen(array[i]))
System.out.println("YES");
else
System.out.println("NO");
}
}
public static boolean isHuiWen(int num) {
String str = Integer.toBinaryString(num);
StringBuffer sb = new StringBuffer();
int index = str.length() - 1;
while (str.charAt(index) == '0') {
index--;
}
for (int i = index; i >= 0; i--) {
char c = str.charAt(i);
sb.append(c);
}
return str.equals(sb.toString());
}
}
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
/*
*
* 2
8
2 -1 -1
1 5 3
4 -1 6
2 -1 -1
3 0 2
2 4 7
7 -1 -1
2 -1 -1
8
21 6 -1
52 4 -1
80 0 3
31 7 -1
21 -1 -1
59 -1 -1
50 5 -1
48 -1 1
* */
class TreeNode {
int index;
int val;
int left;
int right;
TreeNode leftNode;
TreeNode rightNode;
TreeNode parentNode;
public TreeNode(int index, int val, int left, int right) {
this.index = index;
this.val = val;
this.left = left;
this.right = right;
}
}
public class Main_WY2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
ArrayList<ArrayList<TreeNode>> lists = new ArrayList<>();
for (int i = 0; i < num; i++) {
int nodeNum = sc.nextInt();
ArrayList<TreeNode> nodeList = new ArrayList<>();
for (int j = 0; j < nodeNum; j++) {
TreeNode treeNode = new TreeNode(j, sc.nextInt(), sc.nextInt(), sc.nextInt());
nodeList.add(treeNode);
}
lists.add(nodeList);
}
for (ArrayList<TreeNode> nodeList : lists) {
if (IsIncTree(nodeList))
System.out.println("YES");
else
System.out.println("NO");
}
}
public static void constructTree(ArrayList<TreeNode> nodeList) {
for (TreeNode treeNode : nodeList) {
if (treeNode.left == -1)
treeNode.leftNode = null;
else {
treeNode.leftNode = nodeList.get(treeNode.left);
nodeList.get(treeNode.left).parentNode = treeNode;
}
if (treeNode.right == -1)
treeNode.rightNode = null;
else {
treeNode.rightNode = nodeList.get(treeNode.right);
nodeList.get(treeNode.right).parentNode = treeNode;
}
}
}
public static TreeNode findRoot(ArrayList<TreeNode> nodeList) {
for (TreeNode treeNode : nodeList) {
if (treeNode.parentNode == null)
return treeNode;
}
return null;
}
public static boolean IsIncTree(ArrayList<TreeNode> nodeList) {
constructTree(nodeList);
ArrayList<Integer> res = traverseTree(findRoot(nodeList));
for (int i = 0; i < res.size() - 1; i++) {
if (res.get(i) > res.get(i + 1))
return false;
}
return true;
}
public static ArrayList<Integer> traverseTree(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
ArrayList<Integer> sumList = new ArrayList<>();
int printed = 0, totalNodes = 1, sum = 0;
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
printed++;
sum += node.val;
if (node.leftNode != null)
queue.offer(node.leftNode);
if (node.rightNode != null)
queue.offer(node.rightNode);
if (printed == totalNodes) {
sumList.add(sum);
sum = 0;
printed = 0;
totalNodes = queue.size();
}
}//while
return sumList;
}
// 2
// 8
// 2 -1 -1
// 1 5 3
// 4 -1 6
// 2 -1 -1
// 3 0 2
// 2 4 7
// 7 -1 -1
// 2 -1 -1
}
#笔试题目##网易互娱##Java工程师##题解#


美团公司福利 3017人发布