新要求:

在“一个整形数组中最大值求和问题(2)”的基础之上,加入了新要求。

将一位数组变成环形数组。

首先在自己看到这道题目的时候,并没有什么思路,然后老师一点一点的旁敲侧击,自己又在纸上动手画了画,最后自己实现了这个项目。值得说明的一点是,自己虽然能够实现,但是当与同学们上台分享时,并没有很好的表达出自己的意思,一方面,自己的语言表达能力还很欠缺,在日后的学习生活中要有意识地去改善这一方面。另一方面,自己地逻辑思维不是很清晰,正如主任所说的那样“这只是一个小小地项目都没能很好的表达出自己,那上百行地大项目,更说不出来,也做不出来了。”自己地逻辑思维能力,也要逐步提高。

设计思想:

环形数组,则程序需要在源程序的基础之上,加入实现最后一个数加开头数地想法,即实现n->(n-1)的计算。

首先在原代码基础之上,加入变量a(用来表示数组的长度,由于数组从0开始表示,故赋初值-1),然后当数组遍历完成一次之后,将已有的sum值与(sum+c[0])、a与数组长度n两两进行比较,两个条件都满足时,才执行,将已有的sum值接着从头开始相加的代码,且每执行一次,均需判断a与数组长度的关系。一但a大于等于数组长度n,则跳出循环,此时的f为子数组和的最大值。

实验截图:

源代码:

import java.util.Scanner;public class sum02 {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);System.out.println("请输入数组的长度为:");int n=sc.nextInt();int[] c = new int[n];System.out.println("请输入"+n+"个整数");for(int i=0;i<n;i++){c[i] = (int) sc.nextLong();}int a=-1;//a值用来表示子数组的长度int f=0;//定义整形变量f,为子数组最大值int sum=0;//定义整形变量sum,为子数组求和for(int i=0;i<n;i++){sum = sum+c[i];if(sum < 0){sum=0;}if(sum > f){f = sum;}a=a+1;}//System.out.println(a);if( a<n && (f+c[0])>f) {for(int i=0;i<n;i++){sum = sum+c[i];if(sum < 0){sum=0;}if(sum > f){f = sum;}a=a+1;if(a >= n) {break;}}}if(sum == 0){for(int i=0;i<n;i++){if(i == 0){f = c[i];}if(f < c[i]){f = c[i];}}}System.out.println("该数组的子数组之和的最大值为:"+f);}}

转载于:https://www.cnblogs.com/Qi77/p/10596235.html

一个整形数组中最大值求和问题(3)相关推荐

  1. 把一个整形数组中重复的数字去掉 - 微软面试题

    请把一个整形数组中重复的数字去掉.例如:  1,   2,   0,   2,   -1,   999,   3,   999,   88  答案应该是: 1,   2,   0,   -1,   9 ...

  2. 1.一个整形数组的最大值

    先定义一个整形,将i赋值进去,在进行冒泡排序,从第一个数开始,运用for的循环将其进行一一比较,找出该整形数组中的最大值

  3. LeetCode:求一个整形数组中组合的最大数

    给定一组非负整数nums,重新排列它们每个数字的顺序(每个数字不可拆分)使之 组成一个最大的整数.注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数.示例 1: Input:nums=[10 ...

  4. c语言如何输出整形数组,C语言 有一个整形数组a,有10个元素,要求输出数组中的全部元素...

    有一个整形数组a,有10个元素,要求输出数组中的全部元素 解题思路:引用数组中各元素的值有3种方法:1.下标法,如a[3];2.通过数组名计算数组元素的地址,找出元素的值 3.用指针变量指向数组元素. ...

  5. 找出整形数组中的元素最大值。

    // 121218 第八章例8.4.cpp : 定义控制台应用程序的入口点. // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. ...

  6. 返回数组个数Java_用java实现返回一个整数数组中最大数组的和

    今天研究了一下如何返回一个整数数组中最大数组的和,具体要求如下: 分析: 对于这个问题可以设定一个整型max,让他来充当子数组的和的最大值,之后就需要让他和所有的子数组进行比较,这里可以用两个for循 ...

  7. Python 找出一个整数数组中,第二大的数。

    问题的要求: 给你一个整形数组,找出这个数组中第二个大的数. 比如说:num_list = [98,12,45,1,2,32,90,45,23,121,11] 第二大的数是98 解决方法: 方法1: ...

  8. 返回一个整数数组中最大子数组的和---环形数组

    一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...

  9. 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)

    一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...

最新文章

  1. C++在构造函数中调用构造函数
  2. mysql 删除数据后myd_Windows下的MySQL删除data文件夹后……
  3. Search Insert Position
  4. C++派生类构造函数调用规则
  5. Mybatis的prefix和suffix使用
  6. 综合布线智能配线系统发展趋势
  7. Linux netstat -tunlp查看端口占用情况
  8. [From 10.1~10.5] 对象和集合初始化器(C#语法糖系列)
  9. vue2.0版本指令v-if与v-show的区别
  10. 水晶报表取消输入密码最后测试结果
  11. mysql为什么选错索引?怎么解决?
  12. Java流程控制02 选择结构 if结构 switch结构
  13. 【Kafka】ERROR Error when sending message to topic topic_lcc with key: null, value: 4 bytes with error
  14. 用docker swarm 实现集群
  15. matlab车牌匹配时读取,基于matlab+模板匹配的车牌识别(程序+照片+论文)
  16. 分享若何利用博客做外链的心得寻味
  17. 月结重头戏--外币评估
  18. WSDM'23 | 工业界搜推广nlp论文整理
  19. 7.1.5、Sqoop__sqoop常用命令参数,import,export,hive,数据库连接,hbase等
  20. 在vue中webSocket通信

热门文章

  1. Python 闭包详解
  2. 面向对象网络编程基础 property的使用
  3. sql中去掉换行符和回车符
  4. oracle合并查询
  5. [Win32]一个调试器的实现(六)显示源代码
  6. 我的第一个Windows Phone 7应用程序
  7. 强制卸载域控制器命令
  8. 自动生成Mapper文件(基于Mybatis Maven插件)
  9. 以系统最高权限运行软件
  10. python指定版本 安装模块包