从最重到最轻挑选包裹

问题描述 投票:0回答:5

所以我需要进行一项测试评估,这是我一直遇到麻烦的一个问题。我需要选择最重的物体(最大的数字)并将它们按堆叠顺序放置(重在底部,轻在顶部)我遇到的问题是我不知道到底从哪里开始,代码我使用的是 C#,但是我知道我必须使用排序方法。所以我的主要问题是我试图找出我的开始动作是什么以及如何从他们的动作中取得进展。另外我相信这可能在 codin 游戏上,但尚未在任何地方找到它,如果有人能找到它的名称,也会有很大帮助。

c# package
5个回答
3
投票
无需任何分配、集合和列表:

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; } }
请注意,它不会检查负数。


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/


0
投票
我用 PHP 解决了同样的问题

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; } }
    

0
投票
如果有人需要 python 代码来处理较重到较轻的包,那么如下:

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
    

0
投票
我为此写的最佳答案是在 Kotlin 中这样写的:

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
}

© www.soinside.com 2019 - 2024. All rights reserved.