广州乐牛游戏服务端开发工程师部分笔试题 - 解析

单选题

1.以下()代码,能够对数组正确初始化(或者是默认初始化)(D)

A. int[] a;

B. a={1,2,3,4,5};

C.int[] a = new int[5]{1,2,3,4,5};

D.int[] a = new int[5];

解析:C选项正确的写法是 int[] a = new int[]{1, 2, 3, 4, 5}; 或者 int[] a = {1, 2, 3, 4, 5};。

2.给定如下所示的JAVA代码,则运行时,会产生(B)类型的异常。

String s = null;
s.concat("abc");

A.ArithmeticException

B.NullPointerException

C.IOException

D.ClassNotFoundException

编程题

3.请实现无重复数字的升序数组的二分查找

给定一个元素升序的、无重复数字的整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标(下标从0开始),否则返回-1。

数据范围:0≤len(nums)≤2×10^5, 数组中任意值满足|val|≤10^9

进阶:时间复杂度O(logn),空间复杂度 O(1)

补充说明

数组元素长度在[0,10000]之间。

数组每个元素都在[-9999,9999]之间。

示例1

输入

[-1,0,3,4,6,10,13,14],13

输出

6

说明

13 出现在nums中并且下标为 6

题解
import java.util.*;
public class Solution {
    public int search(int[] nums, int target) {
        int left = 0, right = nums.length - 1;
        // 当左指针小于等于右指针时,继续循环
        while (left <= right) {
            // 计算中间位置
            int mid = (right - left) / 2 + left;
            // 获取中间位置的元素
            int num = nums[mid];
            // 如果中间元素等于目标值,返回中间位置
            if (num == target) {
                return mid;
            } else if (num > target) {
                // 如果中间元素大于目标值,将右指针移动到中间位置的左侧
                right = mid - 1;
            } else {
                // 如果中间元素小于目标值,将左指针移动到中间位置的右侧
                left = mid + 1;
            }
        }
        // 如果循环结束仍未找到目标值,返回-1
        return -1;
    }

}

4.字母大小写转换。

KiKi想完成字母大小写转换,有一个字符,判断它是否为大写字母,如果是,将它转换成小写字母;反之则转换为大写字母。

输入描述

多组输入,每一行输入一个字母。

输出描述

针对每组输入,输出单独占一行,输出字母的对应形式。

示例 1

输入

a
A
Z

输出

A
a
z

题解

import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            String c= in.nextLine();
            if(c.charAt(0)>='A'&&c.charAt(0)<='Z'){
                System.out.println((char)(c.charAt(0)+32));
            }else{
                System.out.println((char)(c.charAt(0)-32));
            }
        }
    }
}

5.牛牛的通勤。

牛牛的通勤路上有两种选择,要么走路,要么打车,牛牛走路的速度是1m/s。打车的速度的10m/s,但是打车需要等出租车10s,请你计算牛牛想尽快到公司应该选择打车还是走路。

输入描述

输入一个正整数,表示牛牛到公司的距离。

输出描述

输出牛牛想尽可能快到公司应该选择打车还是走路,走路的话输出w,打车的输出v。

保证答案一定不会出现两个方案时间一样的情况。

题解

import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int x =in.nextInt();
        if(x<10+x/10){
            System.out.println('w');}
        else{
            System.out.println('v');
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值