分析:此题为笔者在面试某TOP2公司时倒数第二面时遇到的一个题。要实现此算法,必须要设置一个标记数组,以整数做为下标来标记该数是否在数组中出现。这是一种常用的算法技巧。
#define MAXMUM
65536
void FindRepeated(int a[], in n)
{
int tmp[MAXMUM];
int i;
for (i = 0; i < MAXMUM;
i++)
{
tmp[i] = 0;
}
....
}
思考题:输入一个整型数组,里面既有正数,也有负数。数组中连续的若干个整数组成一个子数组。每个子数组都有一个和。求和最大的子数组。比如:1,-2,3,10,-4,7,2,-5,最大的子数组为3,10,-4,7,2,子数组和为18。
int find_max_sub_array(int a[], size_t n)
{
}
Copyright 2011-2020 © MallocFree. All rights reserved.