栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

  • 率‍♂️个人主页:杯咖啡
  • 进步是今天的活动,明天的保证!
  • ✨目前正在学习:SSM框架,算法刷题
  • 牛客网,刷算法过面试的神级网站,用牛客你也牛。 免费注册和我一起学习刷题
  • 希望大家多多支持殺一起进步呀!
  • The man who fears losing has already lost.
    怕输的人已经输了。 - 《权力的游戏》

前言

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

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

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

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

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

✨今日三剑
  • JZ3 数组中重复的数字
  • JZ4 二维数组中的查找
  • JZ5 替换空格

文章目录
  • 前言
  • ✨今日三剑
  • JZ3 数组中重复的数字
    • 题目描述
    • 思路详解
    • 代码与结果
  • JZ4 二维数组中的查找
    • 题目描述
    • 思路详解
    • 代码与结果
  • JZ5 替换空格
    • 题目描述
    • 思路详解
    • 代码与结果
  • ✨总结


JZ3 数组中重复的数字 题目描述

思路详解

本题的思路比较简单,首先将这个数组排序,遍历数组,找到当前的和前一个相同的直接输出就好了。没找到输出-1.
注意:这个方法要注意循环的时候下标要从1开始哦,不然会报数组下标异常滴。

代码与结果
import java.util.*;


public class Solution {
    
    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;
        }
        return false;
    }
}

JZ5 替换空格 题目描述

思路详解

本题的替换空格,思路还是比较简单的。
我们遍历字符串把它存到一个临时字符数组里,在遍历的时候直接判断是否为空,如果是直接加进‘%20’三个字符,最后输出即可。
注意:临时数组的大小,设置为字符串长度的3倍,刚刚好,假设该字符串全是空格,也可以满足。同时也要注意字符串的相关方法的运用哦。

代码与结果
import java.util.*;


public class Solution {
    
   public String replaceSpace(String s) {
    int length = s.length();
    char[] array = new char[length * 3];
    int index = 0;
    for (int i = 0; i < length; i++) {
        char c = s.charAt(i);
        if (c == ' ') {
            array[index++] = '%';
            array[index++] = '2';
            array[index++] = '0';
        } else {
            array[index++] = c;
        }
    }
    String newStr = new String(array, 0, index);
    return newStr;
}
}


✨总结

到这里今日的三剑就完成了,题目不难,但难在坚持,和小编一起互相鼓励,互相监督,共同30太难完成《剑指offer》吧。小编在牛客等你,关注《牛客—剑指offer》专栏,和编一起加油!!!

原 创 不 易 , 还 希 望 各 位 大 佬 支 持 一 下 textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

点 赞 , 你 的 认 可 是 我 创 作 的 动 力 ! textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 ! textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

评 论 , 你 的 意 见 是 我 进 步 的 财 富 ! textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013117.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号