一个整形数组中最大值求和问题(3)
新要求:
在“一个整形数组中最大值求和问题(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, 2, 0, 2, -1, 999, 3, 999, 88 答案应该是: 1, 2, 0, -1, 9 ...
- 1.一个整形数组的最大值
先定义一个整形,将i赋值进去,在进行冒泡排序,从第一个数开始,运用for的循环将其进行一一比较,找出该整形数组中的最大值
- LeetCode:求一个整形数组中组合的最大数
给定一组非负整数nums,重新排列它们每个数字的顺序(每个数字不可拆分)使之 组成一个最大的整数.注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数.示例 1: Input:nums=[10 ...
- c语言如何输出整形数组,C语言 有一个整形数组a,有10个元素,要求输出数组中的全部元素...
有一个整形数组a,有10个元素,要求输出数组中的全部元素 解题思路:引用数组中各元素的值有3种方法:1.下标法,如a[3];2.通过数组名计算数组元素的地址,找出元素的值 3.用指针变量指向数组元素. ...
- 找出整形数组中的元素最大值。
// 121218 第八章例8.4.cpp : 定义控制台应用程序的入口点. // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. ...
- 返回数组个数Java_用java实现返回一个整数数组中最大数组的和
今天研究了一下如何返回一个整数数组中最大数组的和,具体要求如下: 分析: 对于这个问题可以设定一个整型max,让他来充当子数组的和的最大值,之后就需要让他和所有的子数组进行比较,这里可以用两个for循 ...
- Python 找出一个整数数组中,第二大的数。
问题的要求: 给你一个整形数组,找出这个数组中第二个大的数. 比如说:num_list = [98,12,45,1,2,32,90,45,23,121,11] 第二大的数是98 解决方法: 方法1: ...
- 返回一个整数数组中最大子数组的和---环形数组
一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...
- 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)
一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...
最新文章
- C++在构造函数中调用构造函数
- mysql 删除数据后myd_Windows下的MySQL删除data文件夹后……
- Search Insert Position
- C++派生类构造函数调用规则
- Mybatis的prefix和suffix使用
- 综合布线智能配线系统发展趋势
- Linux netstat -tunlp查看端口占用情况
- [From 10.1~10.5] 对象和集合初始化器(C#语法糖系列)
- vue2.0版本指令v-if与v-show的区别
- 水晶报表取消输入密码最后测试结果
- mysql为什么选错索引?怎么解决?
- Java流程控制02 选择结构 if结构 switch结构
- 【Kafka】ERROR Error when sending message to topic topic_lcc with key: null, value: 4 bytes with error
- 用docker swarm 实现集群
- matlab车牌匹配时读取,基于matlab+模板匹配的车牌识别(程序+照片+论文)
- 分享若何利用博客做外链的心得寻味
- 月结重头戏--外币评估
- WSDM'23 | 工业界搜推广nlp论文整理
- 7.1.5、Sqoop__sqoop常用命令参数,import,export,hive,数据库连接,hbase等
- 在vue中webSocket通信