<Cracking the Coding Interview>--제17장: 일반문제--제목8
6778 단어 interview
제목: 가장 큰 하위 그룹과 문제.
해법: O(n) 해법.
코드:
1 // 17.8 Find the consecutive subarray with maximum sum in an array.
2 // O(n) online algorithm.
3 #include <cstdio>
4 #include <vector>
5 using namespace std;
6
7 int maximumSum(vector<int> &v)
8 {
9 int n = (int)v.size();
10
11 if (n == 0) {
12 return 0;
13 }
14
15 int val = v[0];
16 int i;
17
18 for (i = 1; i < n; ++i) {
19 val = val > v[i] ? val : v[i];
20 }
21
22 if (val <= 0) {
23 return val;
24 }
25
26 int res;
27 res = val = 0;
28 for (i = 0; i < n; ++i) {
29 val += v[i];
30 if (val > res) {
31 res = val;
32 }
33 if (val < 0) {
34 val = 0;
35 }
36 }
37
38 return res;
39 }
40
41 int main()
42 {
43 vector<int> v;
44 int n, i;
45
46 while (scanf("%d", &n) == 1 && n > 0) {
47 v.resize(n);
48 for (i = 0; i < n; ++i) {
49 scanf("%d", &v[i]);
50 }
51 printf("%d
", maximumSum(v));
52 v.clear();
53 }
54
55 return 0;
56 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Js 연습 면접 질문우리 회사에서는 때때로 후보자 인터뷰에 참여하는데 주로 Node.js, AWS, 서버리스 스택에 관한 것입니다. 때때로 후보자의 기술을 평가하기 위해 코드의 출력에 대해 물어볼 수 있습니다. 내 경험상 이론을 잘 아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.