当前位置: 首页 > news >正文

【JavaSE】java刷题--数组练习

前言

本篇讲解了一些数组相关题目(主要以代码的形式呈现),主要目的在于巩固数组相关知识。

上一篇 数组 讲解了一维数组和二维数组的基础知识~

欢迎关注个人主页:逸狼

创造不易,可以点点赞吗~

如有错误,欢迎指出~

题1:实现toString的功能

将数组元素以字符串的形式输出在屏幕上

思路

首先要判断空指针和空数组的情况,利用字符串拼接实现toString功能

    //实现自己的数组转成字符串public static String myToString(int[] array){//判断空指针情况 (没有指向对象)if(array==null){return null;}//判断空数组情况  (指向的对象为空)if(array.length==0){return "[]";}String ret="[";for (int i = 0; i < array.length; i++) {ret=ret+array[i];if(i!= array.length-1){ret=ret+" ,";//字符串拼接}}ret+="]";return ret;}

题2:查找数组中的元素

顺序查找

如果数组比较大,效率低

    public static int checkNum(int[]array,int key){for (int i = 0; i < array.length; i++) {if(array[i]==key){return i;}}return -1;}

二分查找

效率高,前题是建立在当前数组是有序的

//二分查找  public static int zheBanFind(int[]array,int key){int right=0;int left= array.length-1;while(right<=left){//int mid=(right+left)/2;//int mid=(left+(left-righ)/2);//防止越界int mid=(right+left)>>>1;//右移一位,相当于除法if(array[mid]<key){right=mid+1;}if(array[mid]>key){left=mid-1;}if(array[mid]==key){return mid;}}return -1;}

题3:冒泡排序

    //java实现冒泡排序public static void BubbleSort(int[]array){boolean flag=true;for (int i = 0; i < array.length-1; i++) {//第一趟for (int j = 0; j < array.length-1-i; j++) {//减i表示每一趟都比上一趟少一次if(array[j]>array[j+1]){int tmp=array[j];array[j]=array[j+1];array[j+1]=tmp;flag=false;}}if(flag==true){break;}}}

题4:数组的逆置

//数组的逆置public static void reverse(int[]array){int left=0;int right= array.length-1;while(left<right){int tmp=array[left];array[left]=array[right];array[right]=tmp;left++;right--;}}

题5:数组的拷贝

将数组重新拷贝一份,当然java中自带了拷贝方法copyOf(既可以拷贝,又可以扩容)

    }//数组的拷贝public static int[] copy1(int[]array){int[]tmp=new int[array.length];for (int i = 0; i < array.length; i++) {tmp[i]=array[i];}return tmp;}
public static void main(String[] args) {int[]array={9,8,7,6,5,4,3,2};//Java里自带的拷贝/*** 可以看作是扩容*/int[] cp=Arrays.copyOf(array,array.length*2);System.out.println(Arrays.toString(cp));//数组填充  可以局部填充int[] array4=new int[10];Arrays.fill(array4,1,6,666);//在数组array4中的【1,6)的位置填充666System.out.println(Arrays.toString(array4));}

题6:奇前偶后

将数组中奇数放在前面,偶数放在后面

public static void fun3(int[] array) {int left = 0;int right = array.length - 1;while (left < right) {while (left < right && array[left] % 2 != 0) {//left<right防止越界//奇数left++;}while (left < right && array[right] % 2 == 0) {//left<right防止越界//偶数right--;}int tmp = array[left];array[left] = array[right];array[right] = tmp;}}public static void main(String[] args){int[] array = {1, 2, 3, 5, 6, 7};fun3(array);System.out.println(Arrays.toString(array));}

题7:找加数

  在数组{2,7,11,15}中找两个数相加的值为13,返回【2,11】

  public static int[]fun4(int[]array,int target){int[]ret={-1,-1};//没找到就直接返回-1for (int i = 0; i < array.length; i++) {for (int j = 0; j < array.length; j++) {if(array[i]+array[j]==target){ret[0]=array[i];ret[1]=array[j];}}}return ret;}public static void main(String[] args) {int[]array={2,7,11,15};int[]ret=fun4(array,4);System.out.println(Arrays.toString(ret));}

题8:判断是否有连续三个奇数

判断一个数组中是否存在连续3个奇数

    public static boolean fun8(int[]array){int count=0;for (int i = 0; i < array.length; i++) {if(array[i]%2!=0){count++;if(count==3){return true;}}else{count=0;}}return false;}public static void main(String[] args) {int[]array={1,2,3,0,7,9,6};System.out.println(fun8(array));}

相关文章:

【JavaSE】java刷题--数组练习

前言 本篇讲解了一些数组相关题目&#xff08;主要以代码的形式呈现&#xff09;&#xff0c;主要目的在于巩固数组相关知识。 上一篇 数组 讲解了一维数组和二维数组的基础知识~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎…...

预处理、编译、汇编、链接过程

预处理、编译、汇编、链接过程 预处理 引入头文件 #include 展开宏定义 #define 处理条件编译指令 #ifdef 删除注释 添加行号 在Linux下可以使用gcc -E命令把hello.c文件预处理成hello.i文件。windows这些操作都集成在编译器visual studio这些里面了。 编译 进行语法分…...

3、Cocos Creator 节点和组件

目录 1、 节点和组件 2、 节点层级和显示顺序 3、坐标系和节点变换属性 坐标系 锚点 旋转 缩放 尺寸 4、 常用技巧 5、参考 1、 节点和组件 Cocos Creator 的工作流程是以组件式开发为核心的&#xff0c;组件式架构也称作 组件 — 实体系统&#xff08;或 Entity-C…...

【js刷题:数据结构数组篇之长度最小的子数组】

长度最小的子数组 一、题目二、方法1.暴力解法2.滑动窗口是什么滑动窗口的起始位置滑动窗口的结束位置代码展示 3.力扣刷题水果成篮题目思路代码 一、题目 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&…...

大话设计模式之装饰模式

装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许向现有对象动态地添加新功能&#xff0c;同时又不改变其结构。装饰模式通过将对象放入包装器中来实现&#xff0c;在包装器中可以动态地添加功能。 在装饰模式中&#xff0c;通常会有…...

国赛大纲解读

1. 第一部分,是针对5G基础知识的掌握,第二部分是人工智能基本算法的掌握,就是人工智能的应用,用5G+人工智能(AI算法)进行网络优化的问题,要有网络优化的基础知识,比如说:某个区域的覆盖问题,覆盖特别差,但有数据,覆盖电频,srp值这些数据给你,根据数据来判断是…...

设计模式(5):原型模式

一.原型模式 通过 n e w 产生一个对象需要非常繁琐的数据准备或访问权限&#xff0c;则可以使用原型模式。 \color{red}{通过new产生一个对象需要非常繁琐的数据准备或访问权限&#xff0c;则可以使用原型模式。} 通过new产生一个对象需要非常繁琐的数据准备或访问权限&#xf…...

【React】vite + react 项目,进行配置 eslint

安装与配置 eslint 1 安装 eslint babel/eslint-parser2 初始化配置 eslint3 安装 vite-plugin-eslint4 配置 vite.config.js 文件5 修改 eslint 默认配置 1 安装 eslint babel/eslint-parser npm i -D eslint babel/eslint-parser2 初始化配置 eslint npx eslint --init相关…...

Windows入侵排查

目录 0x00 前言 0x01 入侵排查思路 1.1 检查系统账号安全 1.2 检查异常端口、进程 1.3 检查启动项、计划任务、服务 0x00 前言 当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时&#xff0c;急需第一时间进行处理&#xff0c;使企业的网络信息系统在最短时…...

C语言每日一题

1.题目 二.分析 本题有两点需要注意的&#xff1a; do-while循环 &#xff1a;在判断while条件前先执行一次do循环static变量 &#xff1a;程序再次调用时static变量的值不会重新初始化&#xff0c;而是在上一次退出时的基础上继续执行。for( i 1; i < 3; i )将调用两次…...

TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务

文章目录 针对华硕路由器Faceless代理服务预防措施 一种名为"TheMoon"的新变种恶意软件僵尸网络已经被发现正在侵入全球88个国家数千台过时的小型办公室与家庭办公室(SOHO)路由器以及物联网设备。 "TheMoon"与“Faceless”代理服务有关联&#xff0c;该服务…...

人脸68关键点与K210疲劳检测

目录 人脸68关键点检测 检测闭眼睁眼 双眼关键点检测 计算眼睛的闭合程度&#xff1a; 原理: 设置阈值进行判断 实时监测和更新 拓展&#xff1a;通过判断上下眼皮重合程度去判断是否闭眼 检测嘴巴是否闭合 提取嘴唇上下轮廓的关键点 计算嘴唇上下轮廓关键点之间的距…...

【跟着GPT4学JAVA】异常篇

JAVA异常中的知识点 问&#xff1a; 介绍下JAVA中的异常有哪些知识点吧 答&#xff1a; Java中的异常处理是一个重要的知识点&#xff0c;主要包括以下内容: 异常体系&#xff1a;Java的异常类是Throwable类派生出来的&#xff0c;Throwable下有两个重要的子类&#xff1a;Err…...

Ubuntu上安装d4rl数据集

Ubuntu上安装d4rl数据集 D4RL的官方 github: https://github.com/Farama-Foundation/D4RL 一、安装Mujoco 1.1 官网下载mujoco210文件 如果装过可以跳过这步 链接&#xff1a;https://github.com/deepmind/mujoco/releases/tag/2.1.0 下载第一个文件即可。我这里是在windo…...

C++之STL整理(4)之set 用法(创建、赋值、增删查改)详解

C之STL整理&#xff08;4&#xff09;之set 用法&#xff08;创建、赋值、增删查改&#xff09;详解 注&#xff1a;整理一些突然学到的C知识&#xff0c;随时mark一下 例如&#xff1a;忘记的关键字用法&#xff0c;新关键字&#xff0c;新数据结构 C 的map用法整理 C之STL整理…...

IDEA MyBatisCodeHelper Pro最新版(持续更新)

目录 0. 你想要的0.1 包下载0.2 使用jh 1. 功能介绍2. 下载安装2.1 在idea中插件市场安装2.2 在jetbrains插件市场下载安装 3. 简单使用3.1 创建一个SpringBoot项目3.2 配置数据库3.3 一键生成实体类、mapper 0. 你想要的 0.1 包下载 测试系统&#xff1a;Windows&#xff08…...

sheng的学习笔记-AI-YOLO算法,目标检测

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 目录 目标定位&#xff08;Object localization&#xff09; 定义 原理图 具体做法&#xff1a; 输出向量 图片中没有检测对象的样例 损失函数 ​编辑 特征点检测&#xff08;Landmark detection&#xff09; 定义&a…...

C# wpf 嵌入wpf控件

WPF Hwnd窗口互操作系列 第一章 嵌入Hwnd窗口 第二章 嵌入WinForm控件 第三章 嵌入WPF控件&#xff08;本章&#xff09; 第四章 底部嵌入HwndHost 文章目录 WPF Hwnd窗口互操作系列前言一、如何实现&#xff1f;1、继承HwndHost2、添加Content属性3、创建wpf窗口并设置Conten…...

云原生(六)、CICD - Jenkins快速入门

Jenkuns快速入门 一、CICD概述 CICD是持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;的缩写。它是软件开发中的一种流程和方法论&#xff0c;旨在通过自动化的方式频繁地将代码集成到共享存储库中&#xf…...

基于java+springboot+vue实现的付费自习室管理系统(文末源码+Lw+ppt)23-400

摘 要 付费自习室管理系统采用B/S架构&#xff0c;数据库是MySQL。网站的搭建与开发采用了先进的java进行编写&#xff0c;使用了springboot框架。该系统从两个对象&#xff1a;由管理员和用户来对系统进行设计构建。主要功能包括&#xff1a;个人信息修改&#xff0c;对用户…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

Spring AOP代理对象生成原理

代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】&#xff0c;这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...

OPENCV图形计算面积、弧长API讲解(1)

一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积&#xff0c;这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能&#xff0c;常用的API…...

无头浏览器技术:Python爬虫如何精准模拟搜索点击

1. 无头浏览器技术概述 1.1 什么是无头浏览器&#xff1f; 无头浏览器是一种没有图形用户界面&#xff08;GUI&#xff09;的浏览器&#xff0c;它通过程序控制浏览器内核&#xff08;如Chromium、Firefox&#xff09;执行页面加载、JavaScript渲染、表单提交等操作。由于不渲…...

SE(Secure Element)加密芯片与MCU协同工作的典型流程

以下是SE&#xff08;Secure Element&#xff09;加密芯片与MCU协同工作的典型流程&#xff0c;综合安全认证、数据保护及防篡改机制&#xff1a; 一、基础认证流程&#xff08;参数保护方案&#xff09; 密钥预置‌ SE芯片与MCU分别预置相同的3DES密钥&#xff08;Key1、Key2…...