所以我需要进行一项测试评估,这是我一直遇到麻烦的一个问题。我需要选择最重的物体(最大的数字)并将它们按堆叠顺序放置(重在底部,轻在顶部)我遇到的问题是我不知道到底从哪里开始,代码我使用的是 C#,但是我知道我必须使用排序方法。所以我的主要问题是我试图找出我的开始动作是什么以及如何从他们的动作中取得进展。另外我相信这可能在 codin 游戏上,但尚未在任何地方找到它,如果有人能找到它的名称,也会有很大帮助。
using System;
public class Program
{
public static void Main(string[] args)
{
var a = 13;
var b = 14;
var c = 15;
Console.WriteLine(Solve(a, b, c));
}
public static int Solve(int weight0, int weight1, int weight2)
{
return weight0 > weight1
? weight0 > weight2
? 0 : 2
: weight1 > weight2
? 1 : 2;
}
}
请注意,它不会检查负数。
Sort
是一种矫枉过正,因为它用在
IEnumerable
上,而你没有并且需要创建它。我认为使用此页面来学习会更容易:
https://www.tutorialspoint.com/Chash-program-to-find-the-maximum-of-two-numbers
在这种情况下排序似乎没有帮助,因为您需要返回重量索引,而不是大小。您可以尝试创建一个包含索引和权重的字典,并使用 linq 找到最大的权重:
public static int GetHeaviestWeightIndex(int weight1, int weight2, int weight3)
{
var weightToIndexMapping = new Dictionary<int, int> {{weight1, 0}, {weight2, 1}, {weight3, 2}};
return weightToIndexMapping[weightToIndexMapping.Keys.Max()];
}
如果您坚持使用Sort
,您可以尝试使用
SortedDictoinary
,如下所示:https://www.geeksforgeeks.org/sorteddictionary-class-in-c-sharp/
Pick the packages from the heaviest to the lightest one.
function solve($weight0, $weight1, $weight2) {
// Write your code here
// To debug (equivalent to var_dump): error_log(var_export($var, true));
if(($weight0 >= $weight1) && ($weight0 >= $weight2)){
return 0;
}else if(($weight1 >= $weight0) && ($weight1 >= $weight2)){
return 1;
}else{
return 2;
}
}
def 求解(权重_0,权重_1,权重_2):
#在这里写下你的代码
#下面的代码用于练习 1 和 3(7 个不同的框和 6 个相等的框)
if(weight_2 > weight_0):
return 2
elif(weight_1 < weight_2):
return 0
elif(weight_1 > weight_2):
return 1
else:
print("")
#下面的代码用于练习 2(相同的框)
if (weight_0 < weight_1):
return 0
elif(weight_1 < weight_2):
return 1
elif(weight_1 == weight_2):
return 2
import java.util.*
import java.io.*
import java.math.*
fun solve (weight0: Int, weight1: Int, weight2: Int): Int {
var array=arrayOf<Int>()
array+=weight0
array+=weight1
array+=weight2
val max=array.max()
var index=array.indexOf(max)
return index
}