小编ton*_*bra的帖子

我可以用这种方式声明ArrayList吗?

Iterable<Board> theNeighbors = new ArrayList<Board>();
Run Code Online (Sandbox Code Playgroud)

这是我对ArrayListtheNeighbors的初始化,它使用了interafce Iterable进行声明.但是,当我使用方法add()来构建我刚刚构建的变量时,编译器会发出警报

Board.java:78:错误:找不到符号theNeighbors.add(nb); ^
符号:方法添加(Board)
位置:变量类型Iterable的邻居

是什么让它发生?在我使用的另一种情况

List<Board> theNeighbors = new ArrayList<Board>();
Run Code Online (Sandbox Code Playgroud)

add()方法效果很好.您为声明选择的界面是否应始终具有您稍后要调用的方法?

java arraylist

13
推荐指数
1
解决办法
828
查看次数

为什么我的python代码这么慢(leetcode)?

给定一个整数数组,除了一个元素外,每个元素都会出现两次.找一个单一的.

注意:您的算法应具有线性运行时复杂性.你能不用额外的内存来实现吗?

class Solution:
    # @param {integer[]} nums
    # @return {integer}
    def singleNumber(self, nums):
        prev = []
        for i,j in enumerate(nums):
            if j in prev:
                nums[i] = -j
            else:
                prev.append(j)
        return sum(nums)
Run Code Online (Sandbox Code Playgroud)

这是来自leetcode的问题,实际上是AC率最高的问题.但是,正如我的代码所说,它告诉我时间限制已超出并且无法被接受.任何人都可以分析我的代码,包括复杂性吗?非常感谢.

Upadate:谢谢大家,我已将"prev"从列表更改为一组,这很好用!

class Solution:
    # @param {integer[]} nums
    # @return {integer}
    def singleNumber(self, nums):
        prev = set([])
        for i,j in enumerate(nums):
            if j in prev:
                nums[i] = -j
            else:
                prev.add(j)
        return sum(nums)
Run Code Online (Sandbox Code Playgroud)

但是,正如问题所描述的那样,我仍在寻找不需要额外记忆的解决方案.

更新:我使用另一种方法尝试解决问题,但再次收到超时时间.

class Solution:
    # @param {integer[]} nums
    # @return {integer}
    def singleNumber(self, nums):
        for i,j …
Run Code Online (Sandbox Code Playgroud)

python algorithm

4
推荐指数
1
解决办法
845
查看次数

这段代码如何找到二叉树的最小深度?

我在https://leetcode.com/discuss/37282/simple-python-recursive-solution-bfs-on-80ms看到这段代码

这是答案

给定二叉树,找到它的最小深度.

最小深度是从根到最短路径的节点数

节点向下到最近的叶节点.

class Solution:
        # @param {TreeNode} root
        # @return {integer}
        def minDepth(self, root):
            if not root:
                return 0

            nodes = [(root, 1)]
            while nodes:
                node, curDepth = nodes.pop(0)
                if node.left is None and node.right is None:
                    return curDepth
                if node.left:
                    nodes.append((node.left, curDepth + 1))
                if node.right:
                    nodes.append((node.right, curDepth + 1))
Run Code Online (Sandbox Code Playgroud)

所以我的困惑是,节点1是否有节点2和节点3作为其.left和.right子节点,因此堆栈将是[(节点2,someDepth),(节点3 someDepth)].然后,由于堆栈将仅弹出列表的最后一个元素,然后(节点3 someDepth)将被解包,而节点2被完全忽略.那么,如果节点2没有子节点,而节点3有,那么使用节点3进行后续迭代是不是错了?

python algorithm tree

2
推荐指数
1
解决办法
629
查看次数

我的java代码有什么问题?(解析错误)

public class 1127 
{
    public static void main(String[] args)
    {
        binomial();
    }

    public static double binomial(int N, int k, double p)
    {
        if (N == 0 && k ==0) return 1.0;
        if (N < 0 || k < 0) return 0.0;
        return (1.0 - p)*binomial(N-1, k, p) + p*binomial(N-1, k-1, p);
    }
}
Run Code Online (Sandbox Code Playgroud)

/ Volumes/2/Learn_Algorithms /第一章/ 1127.java:13:解析时到达文件末尾}}
小心点无法识别

^ 15错误

这是我第一次编写Java代码,我有几个问题.

  1. "解析时到达文件末尾"是什么意思?

我不认为我错过任何'{'或'}'

  1. 然后那些SUBNULNULNUL系列......怎么样?

  2. 它是如何计算15个错误的?

java class identifier

1
推荐指数
1
解决办法
68
查看次数

它让我疯狂,当我运行这个简单的Java程序时会产生24个错误.

public class Planet {
    double x;
    double y;
    double xV;
    double yV;
    double mass;
    double imgName;
    public Planet (double x; double y; double xV; double y; double mass; double imgName;) {
        this.x = x;
        this.y = y;
        this.xV = xV;
        this.yV = yV;
        this.mass = mass;
        this.imgName = imgName;
    }
    public static void main(String[] args) {
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

Planet.java:8:')'预计

Planet.java:8:非法启动类型

Planet.java:8:';' 预期

Planet.java:9:非法启动类型

Planet.java:9:预料到

Planet.java:9:';' 预期

Planet.java:9:非法启动类型

...

Planet.java:16:类,接口或枚举期望public static void main(String [] args)

Planet.java:18:class,interface或enum expected}

我看到不同类型的错误!任何人都可以一个一个地向我解释,因为它太烦人了.

java

-3
推荐指数
1
解决办法
60
查看次数

变量可能尚未初始化?

这是我的java代码(我知道的一种可怕的暴力算法,这是要求).我想我j在任何引用之前已经在for循环中初始化了变量,但是当我运行编译器警报时.

import java.util.Arrays;

public class Brute {

    public static void main(String[] args) {

        String filename = "./collinear/input" + args[0] + ".txt";
        In f = new In(filename);
        int N = f.readInt();
        Point[] points = new Point[N];
        int x, y;

        StdDraw.setScale(-10000, 50000);

        for(int i = 0; i < N; i++) {
            x = f.readInt();
            y = f.readInt();
            points[i] = new Point(x, y);
            points[i].draw();
        }

        Arrays.sort(points);


        int i, j, k, l;

        for(i = 0; i < N; i++)
            for(j = 0; …
Run Code Online (Sandbox Code Playgroud)

java

-6
推荐指数
1
解决办法
135
查看次数

标签 统计

java ×4

algorithm ×2

python ×2

arraylist ×1

class ×1

identifier ×1

tree ×1