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

相关推荐

今天 18:31
成都理工大学 C++
点赞 评论 收藏
分享
每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务