• 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的强大,简洁明了地解决了。不用这两个关键字也可以写出来,只不过代码会比较冗余。

  • 相关阅读:
    https://www.cnblogs.com/aademeng/category/1042475.html
    python中重要的模块--asyncio 转载
    await这个关键词以及asyncio.wait asyncio.gather
    async get_event_loop
    麦克米伦7000
    [GO]errorr接口的使用
    [GO]断言
    [GO]空接口
    [GO]接口的转换
    [GO]接口的嵌用继承
  • 原文地址:https://www.cnblogs.com/zyycumt/p/13251686.html
Copyright © 2020-2023  润新知