首页 > 大疆 客户端开发 笔经(已凉)
头像
无情的offer收割机
编辑于 2020-09-03 22:32
+ 关注

大疆 客户端开发 笔经(已凉)

2020.08.16 晚上 笔试 2h

1)于是他想到一个计划,他先将每个游戏标上一个成就值,同时对每个游戏都估算一个通关所需要的天数,他计划在未来X天内让自己玩游戏的成就达到最大,那么他应该怎么做计划呢?(假设每个游戏最多只计划玩一遍,而且每个游戏必须玩完通关才能取得成就值,且通关每个游戏最小时间单位是1天)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int x = sc.nextInt();
        int[] a = new int[n];
        int[] b = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
            b[i] = sc.nextInt();
        }

        int[][] dp = new int[n + 1][x + 1];
        for (int i = 0; i < n; i++) {
            for (int j = 1; j <= x; j++) {
                if(j >= b[i]) {
                    dp[i + 1][j] = Math.max(dp[i][j], dp[i][j - b[i]] + a[i]);
                } else {
                    dp[i + 1][j] = dp[i][j];
                }
            }
        }

        System.out.println(dp[n][x]);
    }
}


2)题目是这样的:给定一个非负的、字符串形式的整形数字,例如"12353789",字符串的长度也就是整形数字的位数不超过10000位,并且字符串不会以0开头,小C需要挑选出其中K个数字(K小于字符串的长度)并删掉他们,使得剩余字符组成新的整数是最小的。
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        int k = sc.nextInt();

        System.out.println(new Main().deleteKNums(s, k));
    }

    public String deleteKNums (String s, int k) {
        StringBuilder sb = new StringBuilder();
        int n = s.length();
        char[] chars = new char[n];
        int cnt = 0;
        for (int i = 0; i < n; i++) {
            while (k > 0 && cnt > 0 && s.charAt(i) < chars[cnt - 1]) {
                k--;
                cnt--;
            }
            chars[cnt++] = s.charAt(i);
        }

        int idx = 0;
        while (idx < cnt && chars[idx] == '0') {
            idx++;
        }

        if(idx == cnt) {
            return "0";
        }

        while(idx < cnt) {
            sb.append(chars[idx++]);
        }

        return sb.toString();
    }
}


第一题没做,第二题100%,第三题82%

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐