java 数组指定范围中是否存在等差数列


/**
 * 测试连续数组
 * @author yangjie
 *
 */
public class Test01 {
  
	public static void main(String[] args) {
		int[]  arr= {9,3,4,6,8,10};
         System.out.println(searchNum(arr,0,4,2));
	}
    /**
     * 看数组在一定范围中是否存在等差数列
     * @param arr  数组
     * @param index 从数组索引起始位置
     * @param n  项数
     * @param d  公差
     * @return
     */
   public static   Boolean   searchNum(int[]  arr,int  index,int n,int d) {
		int  count=0;
		int  arrLength=arr.length;
		if(arrLength-index>=n) {
			for(int  i=index;i<index+n;i++) {
				count+=arr[i];
			}
			//等差数列求和
			int  sum=(n*arr[index])+(n*(n-1))*(d/2);
			if(count  ==sum) {
				System.out.println("存在连续的数字,从索引"+index+"开始连续"+n+"个数字是公差为"+d+"的等差数列");
				  return  true;
			}else {
				index=index+1;
				//递归调用
				Boolean  flag=searchNum(arr,index,n,d);
				return  flag;
			}
		}
		return false;
   }
}

在开发需求中,判断子数组是否存在等差数列,所以本人就在eclipse中测试一下,如有问题请指出。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值