网易笔试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工程师##题解#