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

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%
#大疆##校招##笔经##Android#
全部评论
笔试做到什么程度能进面试啊?呜呜呜做出来两道也凉了吗
点赞 回复 分享
发布于 2023-08-06 14:06 辽宁

相关推荐

10-23 16:33
门头沟学院 Java
本人某中9本科,成绩中等,目前没科研没实习,目前后端学到了javaWeb,开始没定好方向,在学国外课程,走工程路线起步有点晚了,到这个时间点了还在学JavaWeb,顿感迷茫,不知道是坚持走下去还是寒假去准备考研。考研这个路弄得我还是心痒痒的,因为从众考研的人也不在少数,所以会有这方面的心理安慰吧,就是“不行我可以去考研啊”,而且意味着三年的缓冲,为了复试还有积攒经验美化简历,其实现在也可以去申入实验室打杂;就业可能意味着多些工作经验,工程岗应该到后面还是经验大于学历?还是有点迷茫了,求助好心人有无路线启发
千千倩倩:同27给点建议,现在这个时间点可以快速看完外卖和点评,不用跟着敲,但一定要在看的时候总结每个部分的整个业务流程,对其中的实现有一个大概的印象。然后直接开始看八股,刷算法。八股和算法最好还是在项目学习中穿插着看。如果计算机基础,算法这些基础好,加上每天刻苦学习,两周可以达到勉强能面试的水平,到时候就直接海投中小厂,在约面和面试的过程中不断巩固知识。没找到实习也没关系,就当积累经验。再沉淀一波直接明年三月开始投暑期,毕竟是9本,总是有面试机会的,只要你这三个月不懈怠,面试发挥得一定不错,只要拿到一个中,大厂暑期实习,秋招就有竞争力了。总得而言,现在还有机会,但是时间非常紧张,需要你结合自己情况考虑,共勉
你会选择考研还是直接就业
点赞 评论 收藏
分享
10-20 11:11
辽宁大学 营销
点赞 评论 收藏
分享
自来熟的放鸽子能手面...:这个不一定,找hr跟进一下
点赞 评论 收藏
分享
评论
1
9
分享

创作者周榜

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