Java数组与二维数组及替换空格实战真题讲解

 更新时间:2022年07月20日 09:24:45   作者:风铃听雨~  
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素,这篇文章主要介绍了Java数组与二维数组及替换空格实战真题讲解

数组中重复的数字

题目描述

思路详解

本题的思路比较简单,首先将这个数组排序,遍历数组,找到当前的和前一个相同的直接输出就好了。没找到输出-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;
    }
}

二维数组中的查找

题目描述

思路详解

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

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

代码与结果

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;
    }
}

替换空格

题目描述

思路详解

本题的替换空格,思路还是比较简单的。

我们遍历字符串把它存到一个临时字符数组里,在遍历的时候直接判断是否为空,如果是直接加进‘%20’三个字符,最后输出即可。

注意:临时数组的大小,设置为字符串长度的3倍,刚刚好,假设该字符串全是空格,也可以满足。同时也要注意字符串的相关方法的运用哦。

代码与结果

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
   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;
}
}

到此这篇关于Java数组与二维数组及替换空格实战真题讲解的文章就介绍到这了,更多相关Java数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • TransmittableThreadLocal线程间传递逻辑示例解析

    TransmittableThreadLocal线程间传递逻辑示例解析

    这篇文章主要介绍了TransmittableThreadLocal线程间传递逻辑示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 10分钟搞定Java并发队列

    10分钟搞定Java并发队列

    这篇文章主要介绍了Java并发队列,对此感兴趣的同学,可以参考下
    2021-04-04
  • Jenkins任务批量修改的技巧分享

    Jenkins任务批量修改的技巧分享

    这篇文章主要给大家介绍了关于Jenkins任务批量修改的一些技巧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 如何在java中正确使用注释

    如何在java中正确使用注释

    在编写程序时,经常需要添加一些注释,用以描述某段代码的作用。 一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。下面我们来详细了解一下吧
    2019-06-06
  • Java学习笔记:基本输入、输出数据操作实例分析

    Java学习笔记:基本输入、输出数据操作实例分析

    这篇文章主要介绍了Java学习笔记:基本输入、输出数据操作,结合实例形式分析了Java输入、输出数据相关函数使用技巧与操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 基于Java实现缓存Cache的深入分析

    基于Java实现缓存Cache的深入分析

    本篇文章是对Java实现缓存Cache进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • SpringBoot实现点餐系统的登录与退出功能流程详解

    SpringBoot实现点餐系统的登录与退出功能流程详解

    结束了Springboot+MyBatisPlus也是开始了项目之旅,将从后端的角度出发来整理这个项目中重点业务功能的梳理与实现
    2022-10-10
  • SpringBoot整合Swagger3的流程详解

    SpringBoot整合Swagger3的流程详解

    这篇文章主要介绍了SpringBoot整合Swagger3的流程详解,Swagger最核心的类就是Docket、它可以配置作者信息、扫描类型,在SwaggerConfig配置类,添加@Configuration和@EnableOpenApi注解,需要的朋友可以参考下
    2024-01-01
  • java 线程之对象的同步和异步(实例讲解)

    java 线程之对象的同步和异步(实例讲解)

    下面小编就为大家带来一篇java 线程之对象的同步和异步(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 使用spring框架ResponseEntity实现文件下载

    使用spring框架ResponseEntity实现文件下载

    这篇文章主要介绍了使用spring框架ResponseEntity实现文件下载,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02

最新评论