java - 编写一个名为 repeats_exist(numbers) 的静态方法,该方法将整数数组作为参数
问题描述
编写一个名为 repeats_exist(numbers) 的静态方法,该方法将整数数组作为参数,如果数组中有任何重复值,则返回 true,如果数组中的所有值都是唯一的,则返回 false。注意:您可以假设数组不为空,并且该方法返回一个布尔值。
For example:
Test Result
System.out.println(repeats_exist(new int[]{2, 3, 4, 5, 6})); false
System.out.println(repeats_exist(new int[]{2, 3, 4, 3, 6})); true
这是我的尝试,但仍然有错误。请帮我解决问题。
static boolean repeats_exist(int a[],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]==a[j])
return true;
}
}
return false;
}
解决方案
像这样改变方法
static boolean repeats_exist(int a[])
{
int i,j;
for(i=0;i<a.length;i++)
{
for(j=i+1;j<a.length;j++)
{
if(a[i]==a[j])
return true;
}
}
return false;
}
并且错误将消失
作为示例提供的方法中只有一个参数值。
System.out.println(repeats_exist(new int[]{2, 3, 4, 5, 6}));
但是,声明的方法需要两个参数。也许这就是错误的原因。
或者,当你调用一个方法时,你可以调整参数的个数来得到一个正常的结果。
但是因为你必须直接输入 n 的值[这将是这段代码中数组 a 的长度],这很烦人,并且可能导致其他错误。
public class StackOver
{
static boolean repeats_exist(int a[], int n)
{
int i,j;
for(i=0;i< n;i++)
{
for(j=i+1;j< n;j++)
{
if(a[i]==a[j])
return true;
}
}
return false;
}
public static void main(String[] args) {
System.out.println(repeats_exist(new int[]{2, 3, 4, 5, 6}, 5));
System.out.println(repeats_exist(new int[]{2, 3, 4, 3, 6}, 5));
}
}
如果你没有正确输入 ' n
' 值,它可能无法正确扫描,导致不正确的结果,或者发生错误(java.lang.ArrayIndexOutOfBoundsException
),所以我推荐第一种使用传递给参数的数组长度的方法。
推荐阅读
- sql-server - 在多语句查询中,结果的顺序显然无缘无故地改变了
- apache - www 不会重定向到带有 https 的非 www
- azure-ad-b2c - B2C 自定义策略 - 如何从 Selfasserted DataUri 登录页面显示注册链接
- java - 来自Playstore黑屏的Android aab。无法销毁活动 {com./com..MainActivity}:java.lang.NullPointerException:
- python-3.x - 反向整数python
- jenkins-pipeline - Jenkins 动态管道未显示 BlueOcean 中的所有阶段
- html - 如何阻止我的滚动条推动我的标题?
- scala - Scala:错误:未找到:值 MutableList val ReviewsList = MutableList [Review]()
- facebook - Facebook 数据删除请求回调
- react-native - 多个navigation.push同一个屏幕总是到列表的最后一个