小编ste*_*key的帖子

解决Codility的PermMissingElem测试的正确方法是什么?(JAVA)

我从Codility的代码测试练习中得到以下问题:

给出了由N个不同整数组成的零索引数组A. 该数组包含[1 ..(N + 1)]范围内的整数,这意味着只缺少一个元素.

你的目标是找到缺少的元素.

写一个函数:

class Solution {public int solution(int [] A); }

在给定零索引数组A的情况下,返回缺少元素的值.

例如,给定数组A,使得:

A [0] = 2 A [1] = 3 A [2] = 1 A [3] = 5

函数应该返回4,因为它是缺少的元素.

假使,假设:

N是[0..100,000]范围内的整数; A的元素都是截然不同的; 数组A的每个元素是[1 ..(N + 1)]范围内的整数.

复杂:

预期的最坏情况时间复杂度是O(N); 预期的最坏情况空间复杂度为O(1),超出输入存储(不计算输入参数所需的存储空间).

可以修改输入数组的元素.


我的方法是将给定数组转换为ArrayList,使用ArrayList查找数组中的最低和最高值,并从最低到最高迭代所有可能的值,然后返回缺失值.

这解决了示例问题,但我的问题似乎是在给定数组的以下条件下我无法得到正确的答案:

"空列表和单个元素"

"缺少第一个或最后一个元素"

"单一元素"

"两个要素"

我做错了什么,解决这个问题的正确方法是什么?

java algorithm

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

Perl:请向我解释while()的以下行为

1.为什么while (<$filehandle>)无法迭代遍历文件,但它不会在没有操作数组本身的情况下迭代列表或数组(比如使用while ($_ = shift @array){print $_}?这是怎么发生的?

2.如何while ($var = @array){print $var}设法迭代整个阵列?不应该$var只获取索引的数量@array并返回该值(因此创建一个无限循环)?

从我的理解中while()读取语句和循环的条件性,只要它发现它是真的.我发现令人困惑的是它在文件句柄,列表等方面的行为.

请帮我理解更多,while()因为我发现这个操作员有时会很困惑.

arrays perl file-handling while-loop

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

代码的哪一部分使性能受到影响?(Codility的MaxCounter)

我有以下问题:

为您提供了N个计数器,这些计数器最初设置为0,并且对其有两种可能的操作:

    increase(X) ? counter X is increased by 1,
    max counter ? all counters are set to the maximum value of any counter.
Run Code Online (Sandbox Code Playgroud)

给出了一个由M个整数组成的非空零索引数组A。该数组表示连续的操作:

    if A[K] = X, such that 1 ? X ? N, then operation K is increase(X),
    if A[K] = N + 1 then operation K is max counter.
Run Code Online (Sandbox Code Playgroud)

例如,给定整数N = 5且数组A使得:

A[0] = 3
A[1] = 4
A[2] = 4
A[3] = 6
A[4] = 1
A[5] = 4
A[6] = 4
Run Code Online (Sandbox Code Playgroud)

每个连续操作后的计数器值将为:

(0, 0, …
Run Code Online (Sandbox Code Playgroud)

java algorithm big-o time-complexity data-structures

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

听众放置坚持传统(非中介)MVC模式

我正在Swing中实现一个程序,我在Swing中阅读了Nirmal对这种模式的实现,这似乎表明了对整个"职责分离"概念的相当优雅的处理.

但是,由于我正在开发一个比Nirml发布的更复杂的程序,它由一个JFrame容器组成,我寻求指导如何正确实现MVC.

我的程序将由子容器等组成.我很好奇Controller应该如何实现定义和分配View的所有侦听器的逻辑?或者如果为每个View组件定义侦听器的控制器是否实用?

看来我在View的顶级容器中需要一个方法来允许Controller调用视图来向相关组件添加一个Listener?所以我需要一个方法链,每个方法都将侦听器从顶层容器传递到持有组件的直接容器.最后用容器调用addActionListener()就可以了.

这是在MVC中处理侦听器的正确方法吗?

是否在MVC中强制控制View中每个组件的所有侦听器,或者是一种有用的实践?这也意味着我在顶级容器(View)中创建方法,以便为Controller提供一种方法,将侦听器分配给子容器中的每个组件?

java model-view-controller swing

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