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

【Java初阶练习题】-- 数组练习题

数组练习题

  • 1. 创建的数组,并且赋初始值
  • 2. 改变原有数组元素的值
  • 3. 数组所有元素之和
  • 4. 奇数位于偶数之前
  • 5.两数之和
  • 6. 只出现一次的数字
  • 7. 多数元素
  • 8. 给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。

1. 创建的数组,并且赋初始值

要求:创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100

    public static void main(String[] args) {//创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100int[] array = new int[100];for (int i = 0; i < 100; i++) {array[i] = i + 1;}System.out.println(Arrays.toString(array));}

在这里插入图片描述

2. 改变原有数组元素的值

要求:实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到 对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}

    public static void main(String[] args) {int[] array = {1,2,3};tranForm(array);System.out.println(Arrays.toString(array));}public static void tranForm(int[] array) {for (int i = 0; i < array.length; i++) {array[i] = array[i] * 2;}}

3. 数组所有元素之和

实现一个方法 sum, 以数组为参数, 求数组所有元素之和.

    public static void main3(String[] args) {int[] array = {1,2,3};int ret = sum(array);System.out.println(ret);}public static int sum(int[] array) {int sumArr = 0;for (int i = 0; i < array.length; i++) {sumArr += array[i];}return sumArr;}

在这里插入图片描述

4. 奇数位于偶数之前

调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。
如数组:[1,2,3,4,5,6]调整后可能是:[1, 5, 3, 4, 2, 6]

    public static void main(String[] args) {int[] array = {1,2,3,4,5,6};func1(array);System.out.println(Arrays.toString(array));}public static void func1(int[] array) {int i = 0;int j = array.length - 1;while (i < j) {while (i < j && array[i] % 2 != 0) {i++;}while (i < j && array[j] % 2 == 0) {j--;}int tmp = array[i];array[i] = array[j];array[j] = tmp;}}

在这里插入图片描述

5.两数之和

//输入:nums = [2,7,11,15], target = 9
//输出:[0,1]
//解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
    public static void main(String[] args) {int[] nums = {2,7,11,15};int[] ret = fun1(nums,9);System.out.println(Arrays.toString(ret));}public static int[] fun1(int[] array,int target) {int[] tmp = new int[2];for (int i = 0; i < array.length; i++) {for (int j = i+1; j < array.length; j++) {if (array[i] + array[j] == target) {tmp[0] = i;tmp[1] = j;return tmp;}}}return new int[]{-1,-1};}

在这里插入图片描述

6. 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    public static void main(String[] args) {int[] array = {2,2,1};int ret = fun5(array);System.out.println(ret);}public static int fun5(int[] array) {int tmp = 0;for (int i = 0; i < array.length; i++) {tmp = tmp ^ array[i];}return tmp;}

在这里插入图片描述

7. 多数元素

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

    public static void main(String[] args) {int[] array = {2,2,1,1,1,2,2,2};int ret = fun7(array);System.out.println(ret);}public static int fun7(int[] array) {Arrays.sort(array);return array[array.length/2];}

在这里插入图片描述

8. 给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。

在这里插入图片描述

    public static void main(String[] args) {int[] array = {2,6,4,1};boolean ret = fun8(array);System.out.println(ret);}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;}

在这里插入图片描述

相关文章:

  • Qt界面美化之Qt Style Sheets
  • Ansible自动化安装部署及使用
  • 单链表基本操作的实现,初始化,头插,尾插,判空,获取个数,查找,删除,获取前置和后置位,清空,销毁
  • 在树莓派上使用Nginx搭建本地站点并通过内网穿透实现远程访问
  • 个人网站迁移
  • 由于找不到vcruntime140.dll无法继续执行代码
  • 【Qt6】QStringList
  • 【Midjourney入门教程3】写好prompt常用的参数
  • uniapp在APP端使用swiper进行页面不卡顿滑动
  • Eureka处理流程
  • 算法题:53. 最大子数组和(动态规划)Java Python 实现
  • Vue时间控件赋值后无法重选问题解决方案
  • 渗透工具使用及思路总结(持续更新)
  • SAP ABAP基础语法-TCODE学习(六)
  • 在Node.js中,什么是中间件(middleware)?它们的作用是什么?
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 2017届校招提前批面试回顾
  • Flannel解读
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • leetcode46 Permutation 排列组合
  • nfs客户端进程变D,延伸linux的lock
  • web标准化(下)
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 简单基于spring的redis配置(单机和集群模式)
  • 如何选择开源的机器学习框架?
  • 用mpvue开发微信小程序
  • 在weex里面使用chart图表
  • 最简单的无缝轮播
  • FaaS 的简单实践
  • Spring Batch JSON 支持
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (+4)2.2UML建模图
  • (12)Linux 常见的三种进程状态
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (轉)JSON.stringify 语法实例讲解
  • .NET Micro Framework初体验
  • .net6+aspose.words导出word并转pdf
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET命令行(CLI)常用命令
  • .NET中两种OCR方式对比
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • /boot 内存空间不够
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • ?
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [C/C++] C/C++中数字与字符串之间的转换