面试代码

代码面试需要知道的8种数据结构(附面试题及答案链接) 译者按: 搞定面试,不要急着刷题,先弄懂什么是数据结构! 原文:The top data structures you should know for your next coding interview 译者:Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。 1976年,一个瑞士计算机科学家写一本书《Algorithms + Da... 阅读详情

一,两个线程交替打印

public class TwoThreadPrint {                                                                             
    public static class Printer {                                                                         
        private Boolean flag = false;                                                                     

        public synchronized void printA() {                                                               
            try {                                                                                         
                while (!flag) {                                                                           
                    wait();                                                                               
                }                                                                                         
                System.out.println(Thread.currentThread().getName() + " ---- A");                         
                flag = !flag;                                                                             
                notify();                                                                                 
            } catch (InterruptedException e) {                                                            
                e.printStackTrace();                                                                      
            }                                                                                             
        }                                                                                                 

        public synchronized void printB() {                                                               
            try {                                                                                         
                while (flag) {                                                                            
                    wait();                                                                               
                }                                                                                         
                System.out.println(Thread.currentThread().getName() + " ---- B");                         
                flag = !flag;                                                                             
                notify();                                                                                 
            } catch (InterruptedException e) {                                                            
                e.printStackTrace();                                                                      
            }                                                                                             
        }                                                                                                 
    }                                                                                                     

    public static class ThreadA extends Thread {                                                          
        private Printer printer;                                                                          

        public ThreadA(Printer printer) {                                                                 
            this.printer = printer;                                                                       
        }                                                                                                 

        @Override                                                                                         
        public void run() {                                                                               
            for (int i = 0; i < 10; i++) {                                                                
                this.printer.printA();                                                                    
            }                                                                                             
        }                                                                                                 
    }                                                                                                     


    public static class ThreadB extends Thread {                                                          
        private Printer printer;                                                                          

        public ThreadB(Printer printer) {                                                                 
            this.printer = printer;                                                                       
        }                                                                                                 

        @Override                                                                                         
        public void run() {                                                                               
            for (int i = 0; i < 10; i++) {                                                                
                this.printer.printB();                                                                    
            }                                                                                             
        }                                                                                                 
    }                                                                                                     

    public static void main(String[] args) throws Exception {                                             
        Printer printer = new Printer();                                                                  
        Thread threadA = new ThreadA(printer);                                                            
        Thread threadB = new ThreadB(printer);                                                            
        threadA.start();                                                                                  
        threadB.start();                                                                                  
    }                                                                                                     
}                                                                                                         

二, 给定一个能够生成均匀1~5随机枚举数的函数,请设计一个能够生成均匀1~7随机枚举数的函数。参考这里

public class Rand57 {                                                                          
    private static Random random = new Random();                                               

    public static int rand5() {                                                                
        return random.nextInt(5);                                                              
    }                                                                                          


    private static int[][] initArray = new int[5][5];                                          
    public static int rand7() {                                                                
        int col = Rand57.rand5();                                                              
        int row = Rand57.rand5();                                                              
        if (col == 4 && row > 0) {                                                             
            return Rand57.rand7();                                                             
        } else {                                                                               
            return Rand57.initArray[col][row] % 7;                                             
        }                                                                                      

    }                                                                                          

    static {                                                                                   
        int val = 0;                                                                           
        for (int i = 0; i < 5; i++) {                                                          
            for (int j = 0; j < 5; j++) {                                                      
                Rand57.initArray[i][j] = (val % 7);                                            
                val++;                                                                         
            }                                                                                  
        }                                                                                      
    }                                                                                          

    public static void main(String[] args) throws Exception {                                  
        System.out.println(Rand57.rand7());                                                    
        Map<String, Integer> resultMap = new HashMap<String, Integer>();                       
        for (int i = 0; i < 10000000; i++) {                                                   
            String val = String.valueOf(Rand57.rand7());                                       
            if (null == resultMap.get(val)) {                                                  
                resultMap.put(val, 1);                                                         
            } else {                                                                           
                resultMap.put(val, resultMap.get(val).intValue() + 1);                         
            }                                                                                  
        }                                                                                      

        for (String key : resultMap.keySet()) {                                                
            System.out.println(key + "----" + resultMap.get(key));                             
        }                                                                                      
    }                                                                                          
}                                                                                              

三,对指定的N个数字排序

public class SortRandomNumber {
    public static void main(String[] args) throws Exception {
        File file = new File("random_number.txt");
        BufferedReader br = new BufferedReader(new FileReader(file));

        long start = System.currentTimeMillis();

        byte[] location = new byte[10000000];
        for (int i = 0; i < location.length; i++) {
            location[i] = 0;
        }

        File outFile = new File("sort_number.txt");
        outFile.createNewFile();
        BufferedWriter bw = new BufferedWriter(new FileWriter(outFile));

        String line = br.readLine();
        while (StringUtils.isNotBlank(line)) {

            location[Integer.valueOf(line)] = 1;

            line = br.readLine();
        }

        boolean first = true;
        for (int i = 0; i < location.length; i++) {
            if (location[i] == 1) {
                if (!first) {
                    bw.newLine();
                }
                bw.write(String.valueOf(i));
                first = false;
            }
        }

        long end = System.currentTimeMillis();

        System.out.println("total time: " + (end -start));

        br.close();
        bw.flush();
        bw.close();
    }
}
程序员代码面试指南 算法与数据结构 大厂经典代码面试题 敬爱的程序员们,不知道大家是否都有一个伟大的梦想呢?一个想入大厂的梦? 辛辛苦苦学习修炼技术几十年,还没有跻身到大厂行列。要知道,入不了大厂,不一定取决于你的学历、技术宽度和深度,而是取决于你不知道进入大厂需要什么方向,不知道入职大厂需要积累哪些技术,需要多大的知识图谱来塑造自身。 大家都知道,“面试造火箭,入职拧螺丝”的内在涵义。所以面试这件事情是最需要广大程序员来关注和学习的,今天就给大家分享程序员代码面试指南,帮助大家入职阿里、腾讯、美团和百度等一线大厂。 左神(左程云) 左程云,本科就读于. 阅读详情

相关推荐

2025华为OD面试手撕代码真题目录及面试八股文

本专栏更新每年华为OD机试的高频手撕代码题,每个题目都会使用五种语言进行解答(C & C++& Java & Python & JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2024e卷,od机试,2024E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2024华为od,如何备

KJ.JK 5万+

面试手写代码的一些经验

手写代码,指完全脱离计算机,用笔纸进行编码,有这些好处 1. 面试需要 2. 能完全静下心来,专注思考 建议步骤 1. 理解题目,思考问题的非法输入(空指针,空字符串),特殊条件(数组仅包含一个项目,除零)。需要与面试官讨论,或者在代码前部判断去除 2. 想到解法以后,写出关键步骤伪代码,防止细化的时,精力分散,遗漏一些步骤 3. 编码 4. 一定要耐心再次检查,花不了多少时

猪扒饭的专栏 4766

2026华为OD面试手撕代码真题目录

一般面试的时候每一轮技术面都会出一到两个手撕代码题,这些题的特点就是,非常短小,易于理解。不可能会再出阅读理解一样的机试题的。但是这些题目也非常注意基本功,很注意细节的处理,一般都是easy+medium题目。但是大家一定要注意,因为大部分面试官上面一开始就会让你做题,直接看你所有的做题过程(防止有人水平一般,机试就网上找的答案的蒙混过关),手撕代码题会给你后面的面试定一个基调。

MISAYAONE的博客 9万+

【面试经验】Java面试高频代码题,轻松拿捏Offer

本文系统梳理了Java面试中的高频代码题及应对策略。首先指出代码题在Java面试中的筛选作用,将高频题分为三类:基础语法类(如奇偶判断、字符串反转)、集合操作类(如List去重、Map排序)和多线程类(如线程同步、线程池使用)。针对不同题型提供了详细代码示例和解题思路,并强调理解题意的重要性。文章还总结了面试技巧:逐步优化代码、规范编码风格、添加注释,并通过模拟面试场景展示答题策略。最后指出持续学习是保持竞争力的关键,鼓励开发者不断更新知识储备以应对技术迭代。

大雨淅淅的博客 1466

PowerBuilder 9.0安装组件全解析:Adaptive Server Anywhere、PowerDynamo、InfoMaker到底怎么选?

本文从技术架构师视角详细解析PowerBuilder 9.0安装组件选型策略,包括Adaptive Server Anywhere、PowerDynamo和InfoMaker的核心功能与应用场景。通过分析组件间的依赖关系和安装冲突机制,提供针对不同开发需求的最佳安装方案,帮助开发者高效配置PB9.0开发环境。

weixin_28700593的博客 440

谷歌(Google) Pixel 8/9 Pro(xl)如何获取 root 权限

谷歌(Google)Pixel8/9Pro(xl)等系列手机破解后,会在你的init_boot.img同路径生成一个magisk_patched.img,把这个文件拷贝到adb目录下,稍后还得把它刷回手机,这样手机才能获得Root权限,因为安卓14、15以后的内核结构调整,和Pixel7及以下的6、5、4、3、2等系列手机破解稍微不一致。因为ROOT权限的获取,需要使用ROM中的内核文件,个人强烈建议在官网下载ROM,直接刷最新版,其他地方的ROM如果没有校验码,请自行斟酌是否使用。

bugsycrack的博客 3486

面试中的代码写作:如何撰写清晰、高效的示例代码

在技术面试中,展示清晰、高效的示例代码是展示编程能力和解决问题能力的关键。本文将深入探讨如何在面试中撰写出色的示例代码,包括代码结构、命名规范、算法选择等方面,旨在帮助求职者在面试中脱颖而出。在技术面试中,展示清晰、高效的示例代码是展示你的编程水平和解决问题能力的关键。通过遵循良好的代码风格,选择合适的算法,考虑边界情况,你可以在面试中给面试官留下深刻印象。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 3586

一本集成电路静态时序设计经典之作(可下载)

本书全面深入探讨集成电路设计中关键技术的专著,涵盖了从基础知识到高级应用的各个方面。本书详细介绍了集成电路的发展历程、**静态时序分析的重要性、基本时序模型、时序信息库文件的构建、时序约束的设置、串扰噪声的影响及其控制方法**,并通过实战案例展示了如何进行有效的时序分析和优化。

nuoweishizi的博客 848

面试手写代码的经验分享

前言今天分享一下自己面试的时候遇到的写面试题的经验分享。在面试的时候,分为视频面试和现场面试,接下来讲解着两部分。视频面试在我和我周围的同学参加过的公司里面,不在现场的面...

WantFlyDaCheng的博客 8833

常用的数据结构以及常用的算法

常用的数据结构以及常用的算法 常用数据结构 数据结构是计算机存储、组织数据的方式。 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 数据结构往往同高效的检索算法和索引技术有关。 一、线性表 线性结构: 最常用、最简单的一种数据结构。 线性表: 典型的线性结构。基本特点是线性表中的 数据元素有序且有限。结构中: ① 存在一个唯一的被称为“第一个”的数据元素; ② 存在一个唯一的被称为“最后一个”的数据元素; ③ 除第一个元素外,每

qq_47605698的博客 1446

AMS TMF8820/21/28 SPAD 掩码和模式选择

为了实现最快的测距周期,将报告周期设置在测距周期以下的毫秒,以确保不会有等待时间。除了8X8固定了pixel的位置意外,其他模式客户可以设计自己的spad掩码,并将spad单独分配给通道。对于这些spad掩码,有一些约束。左下角提示红色代表光学中心,绿色方框表示单个spad,每个MP里可能有2X3个spad,也有2X5个spad,也有3X6+3个spad,这部分适配光学,最大的程度的利用spad区域。以下是几种预定义的spad掩码,非常灵活的配置,来适配各种3X3,4X4,8X8的模式选择。

dream it possible 700

前端面试之吊打面试官 读代码篇

以下是我根据面试经历整理的 60 道 JavaScript 读代码类面试题,涵盖变量作用域、闭包、原型链、异步机制、类型转换等核心知识点。每道题附有解析,助你在面试中脱颖而出。

Frankabcdefgh的博客 1024

YOLOv11涨点改进| Kimi团队 2026 |独家创新首发、注意力改进篇|爆火AttnRes残差自注意力模块,含多种创新改进,借助残差思想,缓解细节信息在传播过程中被稀释,促进YOLOv11涨点

🔥本文提出AttnRes残差自注意力模块,通过深度维度的注意力加权机制替代传统固定残差累加方式,使YOLOv11网络能自适应选择更有价值的历史层特征进行聚合。该方法缓解了浅层细节信息在深层传播过程中被稀释的问题,有效融合浅层纹理与深层语义特征,提升小目标、密集目标和复杂场景的检测能力。AttnRes还改善了深层网络的梯度分布与训练稳定性,增强模型收敛质量和泛化能力。实验表明,该模块能以较小计算开销显著提升YOLOv11的特征表达能力、检测精度和整体鲁棒性。文中详细介绍了模块结构、实现原理、优势特点

Ai缝合怪、助力小伙伴高效发论文 125

java程序员面试手写代码_程序员面试时手写代码的意义?

一.手写代码和上机测试我觉得,手写要写出思路,上机要能运行就够了写代码二.手写代码的意义和作用手写代码是一个很重要面试过程。在写的过程中,至少能看出这些问题1.取名字,随意的取名是维护的噩梦。2.是解决具体问题,还是能解决一类问题,别的同事如何使用你的代码。3.思路是否清晰,代码结构是否层次分明。提笔之前,想清楚自己要干什么。4.代码可读性,可维护性。5.边界问题,细节处理是否合理。直接关系到这个...

weixin_42360846的博客 1686

LDRA Testbed软件静态分析_常见问题及处理

通过前面的几篇文章,LDRA Testbed软件静态分析的内容基本讲解完了,本篇文章将针对使用Testbed进行软件静态分析的常见问题进行介绍。 到此为止,LDRA Testbed软件静态分析的内容已经全部讲完,如果有问题,欢迎私信提问(不经常登录,回复可能不及时,见谅)。下一篇文章将开始讲解如何使用Testbed进行单元测试。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 2585

携程滑块、点选验证码登录识别逆向

本文分析了携程登录系统的风控机制,主要包含三种验证场景:无验证码、滑块验证码和二次图标点选验证码。通过跟踪risk_inspect风控接口,发现验证流程采用标准AES加密,需提交设备指纹等加密信息。当触发验证码时,需额外提交包含轨迹坐标的verify_msg参数及token/rid参数。最终通过风控检测后,需使用一致的指纹参数和验证token完成加密登录。文章强调所有分析仅用于学习,代码实现需确保符合法律规范。

码王吴彦祖的博客 1100

前端面试题之手写代码篇

原文地址:前端面试题之手写代码篇 git地址:https://gitee.com/AiShiYuShiJiePingXing/lovebetterworld 点击前往GIT 一、JavaScript 基础 1. 手写 Object.create 思路:将传入的对象作为原型 function create(obj) { function F() {} F.prototype = obj return new F() } 2. 手写 instanceof 方法 instanc..

爱是与世界平行 2986

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

面试常考手写代码学习技巧总结

前言 我们在面试的时候,经常会被面试官问到几个手写代码的问题。手写一个数组去重复,深拷贝,数组拍平等等。有些小伙伴面试之前准备了,但是在编写的时候还是会忘掉,本文总结了一个如何应对手写代码的大纲,前面是一些基础内容,但是也希望能帮助到你,都会就当复习一遍,嘿嘿。 1. 起名字与具体功能考虑 起名字 手写函数的时候,我每次给参数或者函数起名字都要犹豫那么几秒。面试官还以为我不会写嘞! ...

小分享 3171

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

手撕前端面试代码题

序 最近我终于找到了一份满意的工作(字节跳动的实习岗) 准备面试的过程中,我整理出了一些有用的笔记,这篇就是其中之一. 既然写好了,不妨就放在这里分享给大家. 面试通常都有现场写代码的题目,我基本每次都或多或少的翻车.有意思的是,每次面试结束,自己改不到五分钟就调试出来了. 所以面试中的写代码的过程,一定不能紧张,要沉住气慢慢来.只要不是系统自动检查结果,只要是面试官看着你写,就有很大的表现的机会,哪怕最后做不出来. 我参加的最烦人的面试,是那种系统判定结果的面试,只要做不出来,就绝对不可.

weixin_43758603的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

程序猿代码面试指南 PDF

前言 今年是最难求职年,我希望通过这篇文章能帮大家提高求职成功率。这篇文章分为简历篇、面试篇、谈薪酬篇,包括了找工作过程中各个环节的技巧和防坑指南。 这篇文章就是给大家分享左神这本《程序员代码面试指南--IT名企算法与数据结构题目最优解》,此书籍涉及算法与数据结构编程题目240道以上,并且个人实现出最优解,大部分题目为面试高频。 本次的内容大致的就介绍到这里拉,由于内容太多,只能简单介绍到这里,如有需要以上内容的完整版,大家可以评论留言哦~ ..

Firstlucky77的博客 1578

【前端面试系列】如何搞定纸上代码环节?

很多重视技术的互联网公司在工程师招聘的技术面环节都会要求候选人在纸上写代码(后文用“纸上代码”代称),面试官想通过这种方式考察哪些点?候选人该注意哪些点?本文基于美团早几年常用的一道区分度比较高的面试题来做详细讲解,这道题我现在还在用,面过的人很多,但是纸上代码环节能答到满分的少之又少。   本文为《前端面试》系列文章的第 3 篇,前 2 篇链接在这里:闭包篇、DOM 篇。   为什么要纸上代...

前端基础入门学习线路 2808

面试遇到的代码题

面试遇到的代码题

m0_52000310的博客 299

面试被问到写了多少行代码

前几天,去华为面试。我工作经验3年。突然被面试官问到自己一共写了多少行代码。我想了下就说了大概5w-6w行。不知道这个回答符合么

nenyalanye_1 4308

面试手撕代码记录

今天面试第一次手撕代码,题目不难而且刚好前几天练过类似的,居然写出来了,我太快落了。题是面试官现场想的,题目如下:写一个方法实现,给定一句话,没有逗号,单词间用空格隔开,返回最后一个单词有多少个字母。面试时写了solution方法如下: public class Test1 { public static void main(String[] args) { Scann...

虫写的专栏 2881

前端面试之手写代码

数组去重 (一维)数组去重最原始的方法就是使用双层循环,分别循环原始数组和新建数组;或者我们可以使用indexOf来简化内层的循环;或者可以将原始数组排序完再来去重,这样会减少一个循环,只需要比较前后两个数即可;当然我们可以使用ES5,ES6的方法来简化去重的写法,比如我们可以使用filter来简化内层循环,或者使用Set、Map、扩展运算符这些用起来更简单的方法,但是效率上应该不会比原始方法好...

weixin_34354945的博客 541
上一篇: 通过 final 关键字来实现 双重检查(DCL) 时,为什么 局部变量 是必须的?
下一篇: 一些shell代码片段
java_4_ever
博客等级 码龄16年 8粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值