7,765
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace trade_kadane_problem
{
class Program
{
static int[] GenDataSet(int n)
{
int[] result = new int[n];
Random rnd = new Random();
int b = 100;
int u = 200;
int l = 20;
int dm = 20;
for (int i = 0; i < n; i++)
{
result[i] = b;
int r = rnd.Next(dm) - dm / 2;
if (b + r > u)
b = u;
else if (b + r < l)
b = l;
else
b = b + r;
}
return result;
}
static void Stdsolve(int[] data, out int b, out int s)
{
b = 1;
s = 1;
for (int i = 0; i < data.Length; i++)
for (int j = i; j < data.Length; j++)
{
if (data[s - 1] - data[b - 1] < data[j] - data[i])
{
b = i + 1;
s = j + 1;
}
}
}
static void solve(int[] data, out int b, out int s)
{
b = 1;
s = 1;
//在这里编写代码
}
static void Print(int[] data)
{
for (int i = 0; i < data.Length; i++)
{
Console.Write(data[i] + " ");
}
Console.WriteLine();
}
static void Main(string[] args)
{
int[] arr = GenDataSet(20);
Print(arr);
int b = 0;
int s = 0;
Stdsolve(arr, out b, out s);
Console.WriteLine("std {0}~{1}", arr[b - 1], arr[s - 1]);
solve(arr, out b, out s);
Console.WriteLine("solve {0}~{1}", arr[b - 1], arr[s - 1]);
}
}
}
static void solve(int[] data, out int b, out int s)
{
b = 1;
s = 1;
int b1 = b;
for (int i = 1; i < data.Length; i++)
{
if (data[i] < data[b1 - 1])
b1 = i + 1;
if (data[i] - data[b1 - 1] > data[s - 1] - data[b - 1])
{
b = b1;
s = i + 1;
}
}
}
int result = int.MinValue;
int[] arr = new int[]{ 100,103,109,102,95,101,110,112,103,110,112,112,113,103,103,93,88,94,91,88 };
for (int i = 0; i < arr.Length; i++)
{
for (int j = i+1; j < arr.Length; j++)
{
result = (arr[j] - arr[i]) > result ? arr[j] - arr[i]: result;
}
}
public static void main(String... args) {
int[] arr = new int[] {100,103,109,102,95,101,110,112,103,110,112,112,113,103,103,93,88,94,91,88};
int max = arr[0], min = arr[0];
for (int num: arr) {
if (max < num) {
max = num;
}
if (min > num) {
min = num;
}
}
log.info(" max: {}, min:{}", max, min);
}