首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构成中性化合物的印刷元素组合

构成中性化合物的印刷元素组合
EN

Code Review用户
提问于 2014-09-29 11:34:24
回答 1查看 339关注 0票数 4

给出了一个具有元素名称及其各自的pH值的数组。打印两种元素组成中性化合物的组合。

这里是我想出的解决方案,但是使用了Hashmap,因此O(N)空间复杂性。任何想法我都可以降低空间复杂度但保持O(N)时间复杂度

代码语言:javascript
运行
复制
   public static void FindCombinationSuchThatPHValueIsNeutralized(PhValue[] input)
         {
             var map = new Dictionary<int, string>();
             foreach (var phValue in input)
             {
                 if (!map.ContainsKey(-phValue.Value))
                 {
                     map.Add(phValue.Value, phValue.Element);
                 }

                 else
                 {
                     Console.WriteLine(phValue.Element + "," + map[-phValue.Value]);
                     break;
                 }


             }

         }
EN

回答 1

Code Review用户

发布于 2014-09-29 13:39:41

有几件事非常挑剔,但对未来的编码会有帮助.

  1. 缩进-不应该缩进方法的第一个括号
  2. 有意义的参数名称--我知道它是一个输入,但这并不能真正告诉我,我应该将它命名为类似于phValues的名称,这样在调用foreach语句foreach (phValue in phValues)时就更有意义了。
  3. 在if语句的末尾和它对应的else语句之间不应该有换行符。
  4. 在代码之后还有许多额外的换行符,这看起来没有条理。

所有这些代码如下所示

代码语言:javascript
运行
复制
public static void FindCombinationSuchThatPHValueIsNeutralized(PhValue[] phValues)
{
    var map = new Dictionary<int, string>();
    foreach (var phValue in phValues)
    {
        if (!map.ContainsKey(-phValue.Value))
        {
            map.Add(phValue.Value, phValue.Element);
        }
        else
        {
            Console.WriteLine(phValue.Element + "," + map[-phValue.Value]);
            break;
        }
    }
}

我可能也会把字典变量的名字改成更有意义的东西,比如phValueMap或者类似的东西。

我没有实现Rolfl对此代码的任何修复,请记住这一点。

票数 4
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/64137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档