[Java刷算法]牛客—剑指offer第一天

  • 😎The man who fears losing has already lost.
怕输的人已经输了。 - 《权力的游戏》

🎈前言

====================================================================

很多小伙伴,对于自己以后的路很迷茫,不论是考研或者面试,都充满了不确定性

小编在学校担任学生会科技创新部副部长,经历和组织了很多次的面试,总结出:实力固然最重要,但是面试也是要深入准备和了解的,可不管怎么样,不论早晚都是要 面试 的,所以为了解决我们的迷茫和内心的恐惧,小编决定今天开始深入了解面试——刷面试题

一次偶然的机会,我了解到牛客对于面试拥有很丰富的面试题库,并且很多大厂也是使用的牛客的源题库。 抱着试试的态度我开始了刷 《剑指offer》

以后的每天小编都会刷三题,并且写成博客记录知识和心情,感兴趣的小伙伴可以和我一起刷,一起了解面试,一起打破迷茫,坚定远方。

👉免费注册陪伴小编30天刷完《剑指offer》👈

✨今日三剑

=====================================================================


文章目录

  • 🎈前言

  • ✨今日三剑

  • JZ3 数组中重复的数字

    • 题目描述

    • 思路详解

    • 代码与结果

  • JZ4 二维数组中的查找

    • 题目描述

    • 思路详解

    • 代码与结果

  • JZ5 替换空格

    • 题目描述

    • 思路详解

    • 代码与结果

  • ✨总结


JZ3 数组中重复的数字

============================================================================

题目描述


在这里插入图片描述

思路详解


本题的思路比较简单,首先将这个数组排序,遍历数组,找到当前的和前一个相同的直接输出就好了。没找到输出-1.

注意:这个方法要注意循环的时候下标要从1开始哦,不然会报数组下标异常滴。

代码与结果



import java.util.*;



public class Solution {

    /**

     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

     *

     * 

     * @param numbers int整型一维数组 

     * @return int整型

     */

    public int duplicate (int[] numbers) {

        // write code here

        Arrays.sort(numbers);

        for(int i = 1 ; i < numbers.length; i++)

            if(numbers[i] == numbers[i - 1]) return numbers[i];

        return -1;

    }

}



在这里插入图片描述

JZ4 二维数组中的查找

============================================================================

题目描述


在这里插入图片描述

思路详解


这个题目有点难度。仔细读题发现了一个重要条件,这个二位数组行和列都是递增的,也就意味着左上最小,右下最大,并且左下元素大于它上方的元素,小于它右方的元素,右上元素与之相反。

根据这个规律,我们可以从左下出发分情况往上或者右进行找,同时要先判断一下特殊情况哦。

具体细节上代码。

代码与结果



public class Solution {

    public boolean Find(int target, int [][] array) {

        //优先判断特殊

        if(array.length == 0) 

            return false;

        int n = array.length;

        if(array[0].length == 0) 

            return false;

        int m = array[0].length;

        //从最左下角的元素开始往左或往上

        for(int i = n - 1, j = 0; i >= 0 && j < m; ){

            //元素较大,往上走

            if(array[i][j] > target)  

                i--;

            //元素较小,往右走

            else if(array[i][j] < target)

                j++;

            else

                return true;



# 写在最后

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?

**就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。**

最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“**Java经典面试问题(含答案解析).pdf**和一份网上搜集的“**Java程序员面试笔试真题库.pdf**”(实际上比预期多花了不少精力),**包含分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货!**

**由于篇幅有限,为了方便大家观看,这里以图片的形式给大家展示部分的目录和答案截图!**
![](https://img-blog.csdnimg.cn/img_convert/7a863a239450ef9fdfa10fb712155f33.webp?x-oss-process=image/format,png)

### Java经典面试问题(含答案解析)

![](https://img-blog.csdnimg.cn/img_convert/4de8bc17e2c7f11ea42553502f2092f6.webp?x-oss-process=image/format,png)

### 阿里巴巴技术笔试心得

![](https://img-blog.csdnimg.cn/img_convert/858f9daee7c4f7ab04e707223ceb4a62.webp?x-oss-process=image/format,png)


ookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货!**

**由于篇幅有限,为了方便大家观看,这里以图片的形式给大家展示部分的目录和答案截图!**
[外链图片转存中...(img-SB4095Ig-1720080957098)]

### Java经典面试问题(含答案解析)

[外链图片转存中...(img-7hC7PZxH-1720080957099)]

### 阿里巴巴技术笔试心得

[外链图片转存中...(img-ihkSHmU9-1720080957099)]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值