首页 > 其他分享 >数组左方的区域

数组左方的区域

时间:2022-10-08 01:44:44浏览次数:42  
标签:int 左方 单独 区域 数组 double include

数组左方的区域

求一个数组左方的所有区域的和以及平均数
image

第一种推荐算法:

超级无敌简单暴力法O(n)(最优解解法)
就是:
每一行单独计算,然后把每一行单独计算的值给累计起来就好,12行就写12个单独循环,最开始单独的两行还不用开循环,也就是只有10个循环
代码量也相对较少;

第二种方法:分块累加法

缺点:

  1. 边界条件容易出错
  2. 时间复杂度较大
  3. 有些边界到最后还是只能使用单独循环进行累加
  4. 边界条件不好处理
  5. 思维较复杂 代码量大
#include <cstdio>
#include <iostream>
#include <cmath>

using namespace std;
const int N=1000;
double a[N][N];

int main()
{
    double tmp=0;
    double tmp1=0;
    double tmp2=0;
    char mod;
    cin>>mod;
    for(int i=0;i<12;i++){
        for(int j=0;j<12;j++){
            cin>>a[i][j];
        }
    }
    //int cnt=11;
    int cnt1=1;
        //神来之笔 可以把一个O(N3)的循环优化到O(n2) 通过能尽量判断有多少变量需要变而多少变量又可以同时变来,那些一定不能同时变来优化时间复杂度
        while(cnt1<6) {
            for (int j =0; j<cnt1; j++) {
                tmp = tmp + a[cnt1][j];
            }
            //cnt--;
            cnt1++;
        }

        for(int j=0;j<5;j++){
            tmp1 = tmp1 + a[6][j];
        }
        int cnt2=4;
        int cnt3=7;
        while (cnt3<11){
            for(int j=0;j<cnt2;j++){
                tmp2=tmp2+a[cnt3][j];
            }
            cnt2--;
            cnt3++;
    }
        if(mod=='S')printf("%.1f",tmp+tmp1+tmp2);
        else printf("%.1f",(tmp+tmp1+tmp2)/30);
    return 0;
}

所以有时候看似省事了,实际没有。

标签:int,左方,单独,区域,数组,double,include
From: https://www.cnblogs.com/E-Sheep/p/16767779.html

相关文章

  • 剑指 Offer 03. 数组中重复的数字
    力扣链接:剑指Offer03.数组中重复的数字acwing链接最初的思路是,将所有数据放入桶中,数据存在,数据桶值就++,有数据重复就retrunnums[i],无数据重复就return-1,且需......
  • 困难-4. 寻找两个正序数组的中位数
    这题难了我几天,重写了几遍代码,一直感觉不对,算法复杂度没降下来,直到今天10月7日完成### 解题思路不停判断区间1是否相交区间2假如中位数存在num1中,不停地对nums1取中......
  • 【C语言】初始数组
    ......
  • 攻防世界favorite_number(php数组溢出+正则m绕过+Linux命令绕过)
    <?php//php5.5.9$stuff=$_POST["stuff"];$array=['admin','user'];if($stuff===$array&&$stuff[0]!='admin'){$num=$_POST["num"];if(preg_ma......
  • P3919 【模板】可持久化线段树 1(可持久化数组)
    还是用主席树来做(因为提到不同的版本),这时候的主席树不是以权值为下标的,就是普通的线段树,维护范围1~n,i存的是a[]中的数。1#include<bits/stdc++.h>2usingnamespac......
  • C++模板类-数组
    /*Container.h所有容器的基类/*MemoryObject内存申请基类我使用TBB申请内存*/template<typenameT> classContainer:publicMemoryObject { protected: T*C......
  • 图文 | 稀疏感兴趣区域池化在目标检测中的应用
    专家解读图像数据与一个或多个核卷积,并生成相应的一个或多个特征映射。感兴趣区域图是从一个或多个特征图中提取出来的,并基于候选的一个或多个特征进行合并。池化生成的特征......
  • 189. 轮转数组
    189.轮转数组给你一个数组,将数组中的元素向右轮转k 个位置,其中 k 是非负数。 示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮......
  • 数组的上半比分操作的优化
    对于一个二维数组进行上半部分操作求和求avg#include<cstdio>#include<iostream>#include<cmath>usingnamespacestd;constintN=1000;doublea[N][N];int......
  • Java Arrays:专为数组而生的工具类
    titleshortTitlecategorytagdescriptionheadJavaArrays:专为数组而生的工具类Arrays工具类Java核心常用工具类Java程序员进阶之路,小白的零......