【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刷题--数组练习
前言 本篇讲解了一些数组相关题目(主要以代码的形式呈现),主要目的在于巩固数组相关知识。 上一篇 数组 讲解了一维数组和二维数组的基础知识~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎…...
预处理、编译、汇编、链接过程
预处理、编译、汇编、链接过程 预处理 引入头文件 #include 展开宏定义 #define 处理条件编译指令 #ifdef 删除注释 添加行号 在Linux下可以使用gcc -E命令把hello.c文件预处理成hello.i文件。windows这些操作都集成在编译器visual studio这些里面了。 编译 进行语法分…...
3、Cocos Creator 节点和组件
目录 1、 节点和组件 2、 节点层级和显示顺序 3、坐标系和节点变换属性 坐标系 锚点 旋转 缩放 尺寸 4、 常用技巧 5、参考 1、 节点和组件 Cocos Creator 的工作流程是以组件式开发为核心的,组件式架构也称作 组件 — 实体系统(或 Entity-C…...
【js刷题:数据结构数组篇之长度最小的子数组】
长度最小的子数组 一、题目二、方法1.暴力解法2.滑动窗口是什么滑动窗口的起始位置滑动窗口的结束位置代码展示 3.力扣刷题水果成篮题目思路代码 一、题目 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&…...
大话设计模式之装饰模式
装饰模式(Decorator Pattern)是一种结构型设计模式,它允许向现有对象动态地添加新功能,同时又不改变其结构。装饰模式通过将对象放入包装器中来实现,在包装器中可以动态地添加功能。 在装饰模式中,通常会有…...
国赛大纲解读
1. 第一部分,是针对5G基础知识的掌握,第二部分是人工智能基本算法的掌握,就是人工智能的应用,用5G+人工智能(AI算法)进行网络优化的问题,要有网络优化的基础知识,比如说:某个区域的覆盖问题,覆盖特别差,但有数据,覆盖电频,srp值这些数据给你,根据数据来判断是…...
设计模式(5):原型模式
一.原型模式 通过 n e w 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。 \color{red}{通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。} 通过new产生一个对象需要非常繁琐的数据准备或访问权限…...
【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 前言 当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时…...
C语言每日一题
1.题目 二.分析 本题有两点需要注意的: do-while循环 :在判断while条件前先执行一次do循环static变量 :程序再次调用时static变量的值不会重新初始化,而是在上一次退出时的基础上继续执行。for( i 1; i < 3; i )将调用两次…...
TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务
文章目录 针对华硕路由器Faceless代理服务预防措施 一种名为"TheMoon"的新变种恶意软件僵尸网络已经被发现正在侵入全球88个国家数千台过时的小型办公室与家庭办公室(SOHO)路由器以及物联网设备。 "TheMoon"与“Faceless”代理服务有关联,该服务…...
人脸68关键点与K210疲劳检测
目录 人脸68关键点检测 检测闭眼睁眼 双眼关键点检测 计算眼睛的闭合程度: 原理: 设置阈值进行判断 实时监测和更新 拓展:通过判断上下眼皮重合程度去判断是否闭眼 检测嘴巴是否闭合 提取嘴唇上下轮廓的关键点 计算嘴唇上下轮廓关键点之间的距…...
【跟着GPT4学JAVA】异常篇
JAVA异常中的知识点 问: 介绍下JAVA中的异常有哪些知识点吧 答: Java中的异常处理是一个重要的知识点,主要包括以下内容: 异常体系:Java的异常类是Throwable类派生出来的,Throwable下有两个重要的子类:Err…...
Ubuntu上安装d4rl数据集
Ubuntu上安装d4rl数据集 D4RL的官方 github: https://github.com/Farama-Foundation/D4RL 一、安装Mujoco 1.1 官网下载mujoco210文件 如果装过可以跳过这步 链接:https://github.com/deepmind/mujoco/releases/tag/2.1.0 下载第一个文件即可。我这里是在windo…...
C++之STL整理(4)之set 用法(创建、赋值、增删查改)详解
C之STL整理(4)之set 用法(创建、赋值、增删查改)详解 注:整理一些突然学到的C知识,随时mark一下 例如:忘记的关键字用法,新关键字,新数据结构 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 包下载 测试系统:Windows(…...
sheng的学习笔记-AI-YOLO算法,目标检测
AI目录:sheng的学习笔记-AI目录-CSDN博客 目录 目标定位(Object localization) 定义 原理图 具体做法: 输出向量 图片中没有检测对象的样例 损失函数 编辑 特征点检测(Landmark detection) 定义&a…...
C# wpf 嵌入wpf控件
WPF Hwnd窗口互操作系列 第一章 嵌入Hwnd窗口 第二章 嵌入WinForm控件 第三章 嵌入WPF控件(本章) 第四章 底部嵌入HwndHost 文章目录 WPF Hwnd窗口互操作系列前言一、如何实现?1、继承HwndHost2、添加Content属性3、创建wpf窗口并设置Conten…...
云原生(六)、CICD - Jenkins快速入门
Jenkuns快速入门 一、CICD概述 CICD是持续集成(Continuous Integration)和持续部署(Continuous Deployment)的缩写。它是软件开发中的一种流程和方法论,旨在通过自动化的方式频繁地将代码集成到共享存储库中…...
基于java+springboot+vue实现的付费自习室管理系统(文末源码+Lw+ppt)23-400
摘 要 付费自习室管理系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从两个对象:由管理员和用户来对系统进行设计构建。主要功能包括:个人信息修改,对用户…...
Claude 3 Haiku性能白皮书首发(含AWS Inferentia2 vs NVIDIA T4实测对比数据)
更多请点击: https://intelliparadigm.com 第一章:Claude 3 Haiku性能白皮书首发概览 Anthropic 正式发布 Claude 3 系列中最轻量、响应最快的基础模型——Claude 3 Haiku,并同步公开首份面向开发者与企业用户的《Claude 3 Haiku 性能白皮书…...
从遥感图像到文字识别:手把手教你用旋转目标检测搞定那些‘歪着’的目标
旋转目标检测实战:从遥感图像到倾斜文本的高效解决方案 在计算机视觉领域,目标检测技术已经取得了长足进步,但传统水平边界框检测方法在面对旋转目标时往往表现不佳。无论是遥感图像中的飞机、船舶,还是自然场景中倾斜的文本&…...
3分钟搞定Axure RP中文界面:全版本汉化终极指南
3分钟搞定Axure RP中文界面:全版本汉化终极指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文…...
ARMv8-A开发实战:DC IVAC指令详解,手把手教你正确清理数据缓存
ARMv8-A开发实战:DC IVAC指令深度解析与缓存一致性实战指南 在嵌入式系统开发中,缓存一致性问题是导致许多"幽灵bug"的罪魁祸首。当DMA控制器直接操作内存而处理器核心毫不知情,或者当多个核心共享同一块内存区域时,缓存…...
如何通过HWInfo插件实现精准硬件监控与风扇控制:完整配置指南
如何通过HWInfo插件实现精准硬件监控与风扇控制:完整配置指南 【免费下载链接】FanControl.HWInfo FanControl plugin to import HWInfo sensors. 项目地址: https://gitcode.com/gh_mirrors/fa/FanControl.HWInfo 想要让电脑散热系统更智能、更安静吗&#…...
告别乱码!手把手教你用Processing为Arduino TFT_eSPI屏幕制作专属中文字库(附完整源码)
告别乱码!手把手教你用Processing为Arduino TFT_eSPI屏幕制作专属中文字库(附完整源码) 在嵌入式开发中,TFT屏幕的中文显示一直是创客们头疼的问题。传统的解决方案要么占用大量存储空间,要么显示效果不尽如人意。本文…...
vLLM Semantic Router:基于信号驱动的LLM智能路由架构与生产实践
1. 项目概述:为什么我们需要一个“智能”的LLM路由器?在当前的LLM应用开发中,我们正面临一个甜蜜的烦恼:模型太多了。从闭源的GPT-4、Claude,到开源的Llama、Qwen、DeepSeek,再到各种针对特定任务微调的小模…...
告别X11!在Ubuntu 22.04上从源码编译Wayland+Weston桌面(保姆级避坑指南)
从X11到Wayland:Ubuntu 22.04源码编译Weston全流程实战 如果你已经受够了X11的老旧架构和偶尔的卡顿,现在是时候拥抱Wayland了。作为Linux桌面图形栈的下一代接班人,Wayland不仅在设计上更现代化,还能带来更流畅的图形体验。本文将…...
厘米级无感定位 + 毫秒级动态重建,镜像视界破解智造虚实脱节难题
厘米级无感定位 毫秒级动态重建,镜像视界破解智造虚实脱节难题植根数字孪生与视频孪生核心赛道,镜像视界(浙江)科技有限公司依托自研视频原生空间智能技术体系,以厘米级无感定位与毫秒级动态重建两大核心技术能力&…...
机器学习在资产管理中的应用:从数据到投资组合的端到端框架
1. 项目概述:当机器学习遇见资产管理如果你在资产管理行业待过,或者对量化投资感兴趣,那你肯定不止一次想过:那些复杂的市场数据、财报、新闻,能不能让机器来帮我们分析,甚至做出决策?firmai/ma…...

