gpt4 book ai didi

c# - 构建逻辑

转载 作者:行者123 更新时间:2023-11-30 21:43:10 27 4
gpt4 key购买 nike

你好,我正在练习一些编码(黑客等级挑战),但我未能构建基本逻辑,我觉得我好像忽略了一些非常简单的东西。我的程序的目的是给定一个 6 x 6 的数组作为输入,我计算每个沙漏总和并仅显示最大总和。数组的输入范围从 -9 到 9(含)。所以如果我的输入数组是

7 8 9 1 2 3

5 6 7 3 4 2

7 9 5 1 3 5

7 9 5 2 1 1

9 5 3 1 3 3

7 6 1 3 5 8

它应该显示所有计算出的沙漏的最大总和。沙漏的一个例子是

7 8 9

...6

7 9 5

这也恰好是这个特定数组中的最高总和 (51)。我面临的问题是当我所有的输入都是负数时显示最大总和。

-1 -1 0 -9 -2 -2

-2 -1 -6 -8 -2 -5

-1 -1 -1 -2 -3 -4

-1 -9 -2 -4 -4 -5

-7 -3 -3 -2 -9 -9

-1 -3 -1 -2 -4 -5

这就是我未能通过测试用例的数组。所以在我的代码中,当我声明我的变量当前总和和最大总和时,我将它们都初始化为零。在计算每个总和后,我检查我的当前总和是否大于我的最大总和,但是,在所有负整数的情况下,当我的当前总和已经小于最大总和时,它永远不会进入那个 if 语句,我‘如果我当前的总和已经小于零,我看不到我应该满足什么对应条件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;

namespace C_hash_Tutorials
{
class HackerRank_Day11
{
static void Main(string[] args)
{
int[][] arr = new int[6][];
string[] arr_temp;
int arr_i = 0;
int curr_sum = 0;
int max_sum = 0;
for (arr_i = 0; arr_i < 6; arr_i++)
{
arr_temp = Console.ReadLine().Split(' ');
arr[arr_i] = Array.ConvertAll(arr_temp, Int32.Parse);
}

for (int x = 0; x < arr.Length-2; x++)
{
for (int y = 0; y < arr.Length-2; y++)
{
curr_sum = arr[x][y] + arr[x][y + 1] + arr[x][y + 2] + arr[x + 1][y + 1] + arr[x + 2][y] + arr[x + 2][y + 1] + arr[x + 2][y + 2];
Console.WriteLine(curr_sum);
if (curr_sum > max_sum)
{
max_sum = curr_sum;
}
}
}

Console.WriteLine(max_sum);
Console.ReadLine();
}
}
}

最佳答案

我相信你所要做的就是将 max_sum 初始化为最小值:

int curr_sum = 0;
int max_sum = int.MinValue;
...

关于c# - 构建逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41957392/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com