Java实现不遍历数组求和

Posted 散步的大象

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实现不遍历数组求和相关的知识,希望对你有一定的参考价值。

package com.jts.t1;

/**
 * 不遍历数组求和
 * 方法省略异常检查
 */
public class Demo1 {

    public static void main(String[] args) {
        int[] arr = {5,1,8,3,7,2,6};
        System.out.println(sum(arr, arr.length));
        System.out.println(sum2(arr));
    }
    
    /**
     * 方式一:递归,传数组长度
     * @param arr
     * @param n
     * @return
     */
    private static int sum(int arr[], int n) {
        if(n == 1) {
            return arr[0];
        }else {
            return arr[n-1] + sum(arr, --n);
        }
    }
    
    /**
     * 方式二:递归,不传数组长度
     * @param arr
     * @return
     */
    private static int sum2(int arr[]) {
        int len = arr.length;
        if(len == 1) {
            return arr[0];
        }else {
            arr[len - 2] += arr[len - 1];
            int[] tempArr = new int[len - 1];
            System.arraycopy(arr, 0, tempArr, 0, len - 1);
            return sum2(tempArr);
        }
    }
}

 

以上是关于Java实现不遍历数组求和的主要内容,如果未能解决你的问题,请参考以下文章

java 基础知识-数组的7种算法(排序求和最值遍历...)

817. Linked List Components - LeetCode

Java数组的--遍历

NC41 最长无重复子数组/NC133链表的奇偶重排/NC116把数字翻译成字符串/NC135 股票交易的最大收益/NC126换钱的最少货币数/NC45实现二叉树先序,中序和后序遍历(递归)(代码片段

最大联通子数组求和

数组求和