IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 网易2022秋季校园招聘-通用技术A卷-0918 -> 正文阅读

[PHP知识库]网易2022秋季校园招聘-通用技术A卷-0918

https://gitee.com/shentuzhigang/algorithm/tree/master/exam-netease/exam-netease-20210918

编程题

第一题

在这里插入图片描述

解决方案

JAVA

import java.util.Scanner;

/**
 * @author ShenTuZhiGang
 * @version 1.0.0
 * @email 1600337300@qq.com
 * @date 2021-09-18 18:03
 */
public class ExamNetEase2021091801 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        String str = String.valueOf(n);
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) != '0' && n % (str.charAt(i) - '0') == 0) {
                count++;
            }
        }
        System.out.println(count);
    }
}

第二题

在这里插入图片描述

解决方案

JAVA

71%

import java.util.Scanner;

/**
 * @author ShenTuZhiGang
 * @version 1.0.0
 * @email 1600337300@qq.com
 * @date 2021-09-18 18:03
 */
public class ExamNetEase2021091802 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        String[] strings = str.split(" ");
        str = strings[0];
        int n = Integer.parseInt(strings[1]);
        int[] a = new int[str.length() - 1];
        long count = 0;
        long sum = 0;
        long max = 0;
        for (int i = 1; i < str.length(); i++) {
            int i1 = Math.abs(str.charAt(i) - str.charAt(i - 1));
            a[i - 1] = Math.min(26 - i1, i1);
            count += a[i - 1];
            sum += a[i - 1];
            if (i - 1 - n >= 0) {
                count -= a[i - 1 - n];
                max = Math.max(max, count);
            }
        }
        if (a.length > n) {
            System.out.println(Math.min(sum + str.length() - max + n, sum + str.length()));
        } else {
            System.out.println(sum + str.length());
        }

    }
}

第三题

在这里插入图片描述

解决方案

JAVA

import java.util.Scanner;

/**
 * @author ShenTuZhiGang
 * @version 1.0.0
 * @email 1600337300@qq.com
 * @date 2021-09-18 18:03
 */
public class ExamNetEase2021091803 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long n0 = scanner.nextLong();
        long n = n0;
        if (n == 0) {
            System.out.println(-1);
            return;
        }
        int count1 = 0, count2 = 0, num = 0;
        while (n != 0) {
            if (n % 2 == 1) {
                count1++;
            }
            num++;
            n /= 2;
        }
        long m = (long) (Math.pow(2, num) - n0);
        while (m != 0) {
            if (m % 2 == 1) {
                count2++;
            }
            m /= 2;
        }
        System.out.println(Math.min(count1, count2 + 1));
    }
}

第四题

在这里插入图片描述

解决方案

JAVA

版本一

import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.Scanner;

/**
 * @author ShenTuZhiGang
 * @version 1.0.0
 * @email 1600337300@qq.com
 * @date 2021-09-18 18:03
 */
public class ExamNetEase2021091804 {
    private static int n;
    private static int a;
    private static int b;
    private static int[][] ans;
    private static boolean flag = false;
    private static int[][] pos = new int[2][2];
    private static char[][] map;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
        a = scanner.nextInt();
        b = scanner.nextInt();
        map = new char[n][n];
        ans = new int[n][n];
        pos[0][0] = -1;
        pos[0][1] = -1;
        pos[1][0] = -1;
        pos[1][1] = -1;
        int p = 0;
        scanner.nextLine();
        for (int i = 0; i < n; i++) {
            map[i] = scanner.nextLine().toCharArray();
            for (int j = 0; j < n; j++) {
                if (map[i][j] == '*') {
                    pos[p][0] = i;
                    pos[p][1] = j;
                    flag = true;
                }
                ans[i][j] = Integer.MAX_VALUE;
            }
        }
        PriorityQueue<Node> q = new PriorityQueue<>(new Comparator<Node>() {
            @Override
            public int compare(Node o1, Node o2) {
                return o1.count - o2.count;
            }
        });
        Node node = new Node();
        node.x = 0;
        node.y = 0;
        node.count = 0;
        q.add(node);
        while (q.size() > 0) {
            node = q.poll();
            if (node.x >= n || node.y >= n || node.x < 0 || node.y < 0 || node.count > ans[n - 1][n - 1]) {
                continue;
            }
            if (ans[node.x][node.y] > node.count) {
                ans[node.x][node.y] = node.count;
            } else {
                return;
            }
            int c1 = 0;
            if (map[node.x][node.y] == '#') {
                c1 = a;
            } else if (map[node.x][node.y] == '*') {
                Node node1 = new Node();
                if (node.x == pos[0][0] && node.y == pos[0][1]) {
                    node1.x = pos[1][0];
                    node1.y = pos[1][1];
                } else {
                    node1.x = pos[0][0];
                    node1.y = pos[0][1];
                }
                node1.count = node.count + b;
                q.add(node1);
            }
            dfs(q, node.x + 1, node.y, node.count + c1);
            dfs(q, node.x, node.y + 1, node.count + c1);
            dfs(q, node.x - 1, node.y, node.count + c1);
            dfs(q, node.x, node.y - 1, node.count + c1);
        }
        System.out.println(ans[n - 1][n - 1]);
    }

    public static void dfs(PriorityQueue<Node> q, int x, int y, int count) {
        Node node1 = new Node();
        node1.x = x;
        node1.y = y;
        node1.count = count;
        q.add(node1);
    }

    static class Node {
        int x;
        int y;
        int count;
    }
}

版本二
超时

import java.util.Scanner;

/**
 * @author ShenTuZhiGang
 * @version 1.0.0
 * @email 1600337300@qq.com
 * @date 2021-09-18 18:03
 */
public class ExamNetEase2021091804_2_TIMEOUT {
    private static int n;
    private static int a;
    private static int b;
    private static int[][] ans;
    private static boolean flag = false;
    private static int[][] pos = new int[2][2];
    private static char[][] map;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
        a = scanner.nextInt();
        b = scanner.nextInt();
        map = new char[n][n];
        ans = new int[n][n];
        pos[0][0] = -1;
        pos[0][1] = -1;
        pos[1][0] = -1;
        pos[1][1] = -1;
        int p = 0;
        scanner.nextLine();
        for (int i = 0; i < n; i++) {
            map[i] = scanner.nextLine().toCharArray();
            for (int j = 0; j < n; j++) {
                if (map[i][j] == '*') {
                    pos[p][0] = i;
                    pos[p][1] = j;
                    flag = true;
                }
                ans[i][j] = Integer.MAX_VALUE;
            }
        }
        dfs(0, 0, 0);
        System.out.println(ans[n - 1][n - 1]);
    }

    public static void dfs(int x, int y, int count) {
        if (x >= n || y >= n || x < 0 || y < 0 || count > ans[n - 1][n - 1]) {
            return;
        }
        if (ans[x][y] > count) {
            ans[x][y] = count;
        } else {
            return;
        }
        int c1 = 0;
        if (map[x][y] == '#') {
            c1 = a;
        } else if (map[x][y] == '*') {
            if (x == pos[0][0] && y == pos[0][1]) {
                dfs(pos[1][0], pos[1][1], count + b);
            } else {
                dfs(pos[0][0], pos[0][1], count + b);
            }
        }
        dfs(x + 1, y, count + c1);
        dfs(x, y + 1, count + c1);
        dfs(x - 1, y, count + c1);
        dfs(x, y - 1, count + c1);
    }
}

问答题

在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 07:45:54  更:2021-09-19 07:47:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:00:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码