JAVA作业,找出一个数组中非零最小正整数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA作业,找出一个数组中非零最小正整数相关的知识,希望对你有一定的参考价值。
参考技术A public class TestUtil/**
* 获取数组中非零最小正整数,如果数组中没有非零正整数,则返回-1·
* @param Object[]
* @return Integer
*/
public static Integer getMinPositiveInteger(int[] ints)
List<Integer> integerList = new ArrayList<Integer>();
for (int i : ints)
Pattern pattern = Pattern.compile("^[1-9]+\\d*$"); //非零正整数
Matcher isPositiveInteger = pattern.matcher(String.valueOf(i)); //匹配器
if (isPositiveInteger.matches()) //是否匹配
integerList.add(i);
Collections.sort(integerList);//排序
return integerList.size() > 0 ? integerList.get(0) : -1;
public static void main(String[] args)
int[] ints =-1, 3, 2, 1, 5, 4, 9, 10;
int[] ints2 =-1, -3, -2, -1, -5, -4, -9, -10;
System.out.println("ints:min===" + TestUtil.getMinPositiveInteger(ints)); //1 System.out.println("ints2:min===" + TestUtil.getMinPositiveInteger(ints2)); //-1
参考技术B 用排序呗,给你一个例子
public vodi fun()
int[] a =-1,3,2,1,5,4,9,10;
java.util.Arrays.sort(a); //利用这个包来对数组排序,默认为升序
int count = 0;
while(count<a.length) //这个循环是为了找出数组中的非零元素
if(a[count]>0) //在这个例子中第一个书a[0]=-1,if语句判断为假,然后继续执行
break; // count++,知道第二个数a[1]=1,执行bereak;输出a[count]
count++;
System.out.println(a[count]);
追答
用排序呗,给你一个例子
public void fun()
int[] a =-1,3,2,1,5,4,9,10;
java.util.Arrays.sort(a); //利用这个包来对数组排序,默认为升序
int count = 0;
while(count0) //在这个例子中第一个书a[0]=-1,if语句判断为假,然后继续执行
break; // count++,知道第二个数a[1]=1,执行bereak;输出a[count]
count++;
System.out.println(a[count]);
以上是关于JAVA作业,找出一个数组中非零最小正整数的主要内容,如果未能解决你的问题,请参考以下文章
线性表练习之Example030-找出数组中未出现的最小正整数
41.给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。
Leetcode练习(Python):数组类:第41题:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。
2021-07-12:缺失的第一个正数。给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。比如[3,4,5