zoukankan      html  css  js  c++  java
  • 子数组和最接近零问题

    子数组和最接近零问题:

    对于长度为N的数组A,求连续子数组的和最接近0的值。

    如:1,-2,3,10,-4,7,2,-5;该数组中子数组和最接近零的值为0,子数组为-4,7,2,-5。

    程序实现:

     1 /***************************************
     2 FileName NearZeroSubArray.cpp
     3 Author : godfrey
     4 CreatedTime : 2016/5/3
     5 ****************************************/
     6 #include <iostream>
     7 #include <cstring>
     8 #include <vector>
     9 #include <algorithm>
    10 #include <stdio.h>
    11 #include <stdlib.h>
    12 
    13 using namespace std;
    14 
    15 int NearZeroSubArray(int* A,int size){
    16     int sum[size+1];
    17     memset(sum,0,(size+1)*sizeof(int));
    18     for(int i=1;i<size;i++){
    19         sum[i+1] = sum[i] + A[i];
    20     }
    21     sort(sum,sum+size+1);
    22     int difference = abs(sum[1] - sum[0]);
    23     int result = difference;
    24     for(int i=1;i<size;i++){
    25         difference = sum[i+1] - sum[i];
    26         result = min(difference,result);
    27     }
    28     return result;
    29 }
    30 int main()
    31 {
    32     int a[] = {1,-2,3,10,-4,7,2,-5};
    33     int result = NearZeroSubArray(a,sizeof(a)/sizeof(int));
    34     cout<<"the FindNearZeroNum: ";
    35     cout<<result<<endl;
    36     return 0;
    37 }

    运行结果:

    说明:本算法时间复杂度为O(nlogn)。

    转载请注明出处:

    C++博客园:godfrey_88

    http://www.cnblogs.com/gaobaoru-articles/

    转载请注明出处: C++博客园:godfrey_88 http://www.cnblogs.com/gaobaoru-articles/
  • 相关阅读:
    关于SQL存储过程的问题
    Community Server的体系结构
    cs_Moderate_ApprovePost///cs_Moderate_CheckUser///cs_Moderate_DeletePost
    计划失败
    Menu 菜单栏
    基于混合云存储系统的电影推荐引擎小结
    zookeeper运维管理
    环境变量问题
    关于库
    腾讯猜字游戏
  • 原文地址:https://www.cnblogs.com/gaobaoru-articles/p/5456710.html
Copyright © 2011-2022 走看看