预见猿份
主题
首页面试题模拟面试SQL练习在线工具关于我们老苗一对一私教学员评价
实战项目
零基础学习路线项目前置基础创新WMS项目Java微服务框架与实战云岚到家项目闪聚支付项目学成在线项目青橙电商项目JVM原理与实战调优分布式事务专题Java高频面试题MySQL从入门到精通达梦数据库从入门到实战MongoDB从入门到实战PostgreSQL从入门到实战TiDB从入门到实战Java数据结构与算法Java 并发编程(JUC)实战课程老苗一对一私教学员评价
blog我的会员
  • Java工程师高频面试题

    • 课程介绍
    • Java基础常见面试题
    • Java并发编程面试题
    • 数据库常见面试题
    • Redis 常见面试题
    • Java 框架常见面试题
    • Linux NG ES MQ SEATA 常见面试题
    • 常见前端面试题
    • Java面试实录
    • Java笔试题机试题百度网盘分享
    • Java常见算法面试题
    • Java AI相关面试题
    • Java 工程师面试最常考的 80 道高频题







----- 到底线了 -----

Java工程师常见算法题 ​

前言:一般华为OD等大厂会有一些手撕代码或者线上面试写代码的流程,所以给需要的同学准备一些比较常见的。

要注意的是,如果面试中遇到写代码的流程,切记不要直接抄答案,一定要先看懂再写,否则如果答案写出来却无法回答思路,还不如不写

常用的刷题网站:

力扣 (LeetCode) 全球极客挚爱的技术成长平台

牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网

Java工程师常见算法题(1) ​

进制转换题(https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6) ​

题目: ​

题目截图

答案: ​

Java
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String s = in.nextLine();
            Integer i = Integer.parseInt(s.substring(2,s.length()),16);
            System.out.println(i);
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

核心是 : Integer i = Integer.parseInt(s.substring(2,s.length()),16);

Integer.parseInt()方法有进制转换的方法 , 可以直接调用, 所有16进制开头的数都是以 "0x "开头的 , 所以要将前面的两位去除掉

二、两数之和(https://leetcode.cn/problems/two-sum/) ​

题目 ​

题目截图

答案 ​

Java
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型一维数组 
     * @param target int整型 
     * @return int整型一维数组
     */
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();
        for (int i = 0; i < nums.length; ++i) {
            if (hashtable.containsKey(target - nums[i])) {
                return new int[]{hashtable.get(target - nums[i]), i};
            }
            hashtable.put(nums[i], i);
        }
        return new int[0];
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

明明的随机数(https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0) ​

题目 ​

题目截图

答案 ​

Java
import java.util.Scanner;
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //输入第一个代表个数
        int num = in.nextInt();
        //获取后面输入的数据
        TreeSet<Integer> set = new TreeSet<Integer>((o1, o2)->o1 - o2);
        for (int i = 0 ; i < num; i++) {
            set.add(in.nextInt());
        }
        Iterator<Integer> iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

注意 : 在牛客网刷题 , TreeSet集合编辑器不识别 , 需要自己手动导包import java.util.*;

解析

这个题去重 , 排序就是TreeSet集合的特性, 声明一个TreeSet集合丢进去, 之后遍历输出即可

如果不用提供好的TreeSet,也可以自己写排序,过程中去掉重复

字符个数统计(https://www.nowcoder.com/practice/eb94f6a5b2ba49c6ac72d40b5ce95f50) ​

题目 ​

题目截图

答案 ​

Java
import java.util.Scanner;
import java.util.* ;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        HashSet<String> set = new HashSet<>();
        for(int i = 0 ;i<str.length();i++){
            set.add(str.charAt(i)+"");
        }
        System.out.println(set.size());
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

解析:

去重就是HashSet的特性 , HashSet会自动对元素去重, 只需要遍历字符串中的每个字符 , 存储到HashSet输出即可

🔒会员方可继续阅读

试读到此结束,完整文档需开通会员,请花两分钟了解下我们

微信二维码微信扫码添加

添加老师微信开通会员:mrt_0607(备注:预见猿份)

探索者会员:59元,全站文档无障碍阅读,没有时间限制。

实践者会员:199元,全站文档+视频+源码资源,没有时间限制。

详细见会员权益

推广本站,也能免费获得会员 →

← Java笔试题机试题百度网盘分享Java AI相关面试题 →








如果发现文档内容有错误或排版错乱,请及时联系站长老苗修改,不胜感激。联系我们
关于我们 | 隐私政策 | 豫ICP备2026003386号-4 | 豫公网安备41010202004008号
目录

本页无章节