我该如何解决我的病情

战斗飞行天空

我想检查一个数组,如果它的三个值之和为0。一个条件是不允许三元组(0,0,0)

public static List<List<int>> ThreeSum(int[] num)
    {
        List<List<int>> returnList = new List<List<int>>(); 
        for (int i = 0; i < num.Length; i++)
        {
            for (int j = 0; j < num.Length; j++)
            {
                for (int k = 0; k < num.Length; k++)
                {
                    if (num[i] + num[j] + num[k] == 0 && num[i] <= num[j] && num[j] <= num[k] && (num[i] !=0 && num[j]!= 0 && num[k]!= 0))
                    {
                        List<int> listInt = new List<int>();
                        listInt.Add(num[i]);
                        listInt.Add(num[j]);
                        listInt.Add(num[k]);
                        if (!returnList.Contains(listInt))
                        {
                            returnList.Add(listInt);
                        }
                    }
                }
            }
        }
        return returnList; 
    }

这是我挣扎的线 if (num[i] + num[j] + num[k] == 0 && num[i] <= num[j] && num[j] <= num[k] && (num[i] !=0 && num[j]!= 0 && num[k]!= 0))

因此,我尝试了另一种方法:(num[i] !=0 && num[j]!= 0 && num[k]!= 0)确保同时满足所有这些条件。您可能知道这对我不起作用。结果中不允许每个零,但只能防止出现三个零。

一种解决方案是:(-1,0,1)但我不会得到它,因为我的条件不接受其中的零。

链接到问题(如果有兴趣):https : //leetcode.com/problems/3sum/

托马斯·阿尤布

您以前的条件是错误的;这意味着i,j和k必须都与0不同。这!(i == 0 || j == 0 || k == 0)是您要执行的操作。

我会这样:

public static List<List<int>> ThreeSum(int[] num)
{
    List<List<int>> returnList = new List<List<int>>();
    foreach (int i in num)
    {
        foreach (int j in num)
        {
            foreach (int k in num)
            {
                if (i + j + k == 0 && i <= j && j <= k && !(i == 0 || j == 0 || k == 0))
                {
                    returnList.Add(new List<int> { i, j, k });  
                }
            }
        }
    }
    return returnList;
}

如果您有点受虐狂,请执行以下操作:

public static List<List<int>> ThreeSum(int[] num)
{
    List<List<int>> returnList = new List<List<int>>();
    foreach (List<int> listInt in num.SelectMany(i => num.SelectMany(j => num.Where(k => i + j + k == 0 && i <= j && j <= k && !(i == 0 || j == 0 || k == 0)).Select(k => new List<int> {i, j, k}).Where(listInt => !returnList.Contains(listInt)))))
    {
        returnList.Add(listInt);
    }
    return returnList;
}

顺便说一句,检查returnList是否包含新列表是无用的,因为它始终为false。(请参阅第一个代码的编辑,第二个代码无法更新。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我该如何解决

来自分类Dev

我该如何解决?

来自分类Dev

什么是NoSuchBeanDefinitionException,我该如何解决?

来自分类Dev

我该如何解决DEPMOD警告

来自分类Dev

我该如何解决这个问题?

来自分类Dev

我该如何解决?rub问题

来自分类Dev

我该如何解决Intent崩溃?

来自分类Dev

我该如何解决样式问题?

来自分类Dev

我该如何解决细分错误?

来自分类Dev

我该如何解决ID问题

来自分类Dev

我的网站仅对我而言是失败的,该如何解决?

来自分类Dev

我的代码正在泄漏。我该如何解决?

来自分类Dev

我该如何解决?我在程序中解释

来自分类Dev

我该如何解决我的构建错误?

来自分类Dev

我该如何解决我的追逐/攻击代码?

来自分类Dev

我该如何解决我的引导网格?

来自分类Dev

我该如何解决这个问题?让我烦了很久

来自分类Dev

我该如何解决该错误?[覆盖/ libgstreamer]

来自分类Dev

我该如何解决-无法解决符号执行

来自分类Dev

shout-python segmentation fault我该如何解决?

来自分类Dev

Debian:找不到deb命令。我该如何解决?

来自分类Dev

为什么9 + 1 = *,我该如何解决?

来自分类Dev

我该如何解决ORA-04007

来自分类Dev

我该如何解决Labview加载冲突

来自分类Dev

什么是循环依赖关系,我该如何解决?

来自分类Dev

我该如何解决此HREF问题

来自分类Dev

子菜单的jQuery脚本,我该如何解决?

来自分类Dev

我该如何解决MoviePy占用的大量内存?

来自分类Dev

我该如何解决流星js中的--port错误