【问题标题】:Using x and y coordinates as a Hashtable key?使用 x 和 y 坐标作为 Hashtable 键?
【发布时间】:2020-12-23 16:06:26
【问题描述】:

我正在处理 Leetcode 问题,我遇到的一个常见场景是我有一个可以使用的解决方案,但它需要一个哈希表才能将 Key 作为一对 X 和 Y 坐标。在谷歌上搜索时,我找不到任何帮助,这让我相信如果我想以这种方式使用它们,我做错了什么。

这通常出现在图形问题或多维数组问题中。

有人对我应该如何定期实施这个有任何想法吗?或者我应该这样做的任何原因?

我使用的语言是 C#,但我确信它适用于大多数语言。

非常感谢!

【问题讨论】:

  • 一个 x,y 坐标散列是图上的一个正方形,角为 1) x min, y min 2) x min y max 3) x max y min 4) x max y max。所以通常你的值是 x min、y min 并将值向下舍入到最小值。因此,如果您有一个从 (0,0) 到 (4,4) 的图,并且您希望哈希大小为 1 x 1,那么 (0,0) 的哈希点将是 x
  • 你也可以将你的 x/y 值组合成一个字符串来创建一个键。请务必填充您的值,以便您始终拥有一个明确的固定长度键(例如“0104”)。

标签: c# graph hashmap hashtable


【解决方案1】:

你可以使用Tuple:

var dict = new Dictionary<(int x, int y), string>();
dict.Add((12, 34), "My Town");

related answer

假设坐标总是小于MAX,你可以计算一个组合键

x * MAX + y

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多