zoukankan      html  css  js  c++  java
  • Java数据结构学习脚印-UC Berkeley练习

    练习4:编写一个函数windowPosSum(int[] a, int n),将每个元素替换a[i]a[i]through 的总和a[i + n],但前提a[i]是值为正。如果由于到达数组的末尾而没有足够的值,则我们仅求和多少个值。

    例如,假设我们windowPosSum使用a = {1, 2, -3, 4, 5, 4},和数组进行调用n = 3在这种情况下,我们将:

    • 替换a[0]a[0] + a[1] + a[2] + a[3]
    • 替换a[1]a[1] + a[2] + a[3] + a[4]
    • 不做任何事情,a[2]因为它是负面的。
    • 替换a[3]a[3] + a[4] + a[5]
    • 替换a[4]a[4] + a[5]
    • 不执行任何操作,a[5]因为之后没有值a[5]

    因此,调用后的结果windowPosSum将为{4, 8, -3, 13, 9, 4}

    public class BreakContinue1{
        public static void windowPosSum(int[] a,int n){
            int i=0,j=0;
            for(i=0;i<a.length;i++){
                if(a[i]<0)
                {
                    continue;
                }
                for(j=i;j<i+n;j++){
                    if(j+1>=a.length)
                        break;
                    a[i]=a[i]+a[j+1];
                }
            }    
        }
        public static void main(String[] args) {
            int[] a = {1, 2, -3, 4, 5, 4};
            int n = 3;
            windowPosSum(a, n);
            // Should print 4, 8, -3, 13, 9, 4
            System.out.println(java.util.Arrays.toString(a));
        }
    }

    这个练习很好地证明了continue和break的强大,简洁明了地解决了。不用这两个关键字也可以写出来,只不过代码会比较冗余。

  • 相关阅读:
    MySQL记录
    yolo
    python 深度学习 库文件安装出错汇总
    OPENCV安装
    vs code安装leetcode插件
    打印机
    标注工具
    训练源代码训练数据集
    c++ 学习
    复现基于Pytorch的YOLOv3所踩的坑~
  • 原文地址:https://www.cnblogs.com/zyycumt/p/13251686.html
Copyright © 2011-2022 走看看