小编Pat*_*shu的帖子

有效地查找未排序列表前缀的顺序统计信息?

A是一个从整数1n随机顺序的数组.

我需要在至少日志时间内随机访问i第一个元素的第一个最大元素j.

到目前为止我所提出的是一个n x n矩阵M,其中(i, j)位置中的元素是i第一个中最大的元素j.这给了我恒定的随机访问,但需要n^2存储.

按构造,M按行和列排序.此外,每列与其邻居的区别在于单个值.

任何人都可以提出一个方法来压缩Mn log(n)空间或更好,具有log(n)或更好的随机存取时间?

language-agnostic algorithm data-structures

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

对于类中未定义/未实现的属性的Python"catch all"方法

喜欢 Python的@property装饰系统.我喜欢你可以在打电话时运行自定义代码aClassObect.attribute.特别是在设置属性时验证数据.但是,我想要的一件事,但我找不到,是一种在尝试设置不存在的属性时运行自定义代码的方法.例如,假设我有以下课程:

class C(object):
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x
Run Code Online (Sandbox Code Playgroud)

现在,如果我有myObj一个类的实例C,并且我调用myObject.x = 42它,它将运行适当的setter,这对于验证数据非常有用.但是这并没有阻止某人打电话myOjbect.b = 47,它会愉快地创建一个名为的新属性b.设置新属性时是否有某种方法可以运行特殊代码?我有能力提出错误,说"错误,这个属性不存在".

python

13
推荐指数
2
解决办法
4649
查看次数

MATLAB GUI中的全局变量?

我正在使用MATLAB GUI.

当我尝试访问使用按钮定义的变量时,它不会在弹出菜单中定义.变量; 它应该设置为'global',因此它在整个程序中定义.我可以在任何回调中使用它.

你们有没有想过如何使变量"全局"?

variables matlab user-interface matlab-guide

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

无法将代码放入接口的解决方法

假设我有一个许多不同类实现的接口:

public interface IHaveObjects
{
    object firstObject();
}
Run Code Online (Sandbox Code Playgroud)

(注意:我不能使它成为一个抽象基类,因为IHaveObjects的实现者可能已经有了一个基类.)

现在我想在接口中添加一个新方法,这样接口的一个实现者就可以有特殊的行为.理想情况下我会做这样的事情:

public interface IHaveObjects
{
    object firstObject();
    object firstObjectOrFallback()
    {
        return firstObject();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后转到接口的那个实现者并给它覆盖:

public class ObjectHaverPlus : IHaveObjects
{
    public override object IHaveObjects.firstObjectOrFallback()
    {
        return firstObject() ?? getDefault();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是它是在C#禁止在接口中提供的方法的身体,我想避免去的每一个实施者IHaveObjects在的定义下降firstObjectOrFallback().(想象一下,如果有数百或数千)

有没有办法在没有大量复制粘贴的情况下执行此操作?

c# interface

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

检查字符串中是否有连续的重复子字符串

我想只接受没有连续三​​次重复的子字符串的字符串.子串事先不知道.例如,"a4a4a4123"包含"a4"; "abcdwwwabcd" - "w"; "abcde" - 有效,无三重复.

我试图自己实现它,但这仅适用于带有一个字母的子字符串:

public bool IsValid(string password)
{
    var validate = true;
    char lastLetter = ' ';
    var count = 1;

    for (int pos = 0; pos < password.Length; pos++)
    {
        if (password[pos] == lastLetter)
        {
            count++;

            if (count > 2)
            {
                validate = false;
                break;
            }
        }
        else
        {
            lastLetter = password[pos];
            count = 1;
        }
    }

    return validate;
}
Run Code Online (Sandbox Code Playgroud)

c# string

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

如何指定Java使用哪种方法?

现在我有了ArrayList<Integer>.
由于说,对于ArrayList的2种remove方法.
假设我有一个整数2,我想删除该列表中的ELEMENT 2而不是POSITION 2(第三个元素)上的元素,我该如何告诉Java这样做?

java integer list

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

JSP - TransformerFactory.newInstance().newTransformer(xsl) 返回 null?

java API 保证它永远不会返回 null - 但对我来说,它是!

http://download.oracle.com/javase/6/docs/api/javax/xml/transform/TransformerFactory.html#newTransformer(javax.xml.transform.Source )

相关代码:

xml = new StreamSource(new URL(mondialURL).openStream());
xsl = new StreamSource(new File("/REMOVED/countriesnofilter.xsl"));
result = new StreamResult(new PrintWriter(out));

transformer = TransformerFactory.newInstance().newTransformer(xsl);
transformer.transform(xml, result);
Run Code Online (Sandbox Code Playgroud)

由于 xml、xsl 和 result 是使用 new 生成的,因此它们必须包含非 null,因此必须是转换器变为 null。为什么会发生这种情况以及如何解决它?

抛出这个:

org.apache.jasper.JasperException:JSP 中的异常:/dca/ass2/a.jsp:46

43:  result = new StreamResult(new PrintWriter(out));
44:  
45:  transformer = TransformerFactory.newInstance().newTransformer(xsl);
46:  transformer.transform(xml, result);
47: 
48: %>
49:  <INPUT TYPE="SUBMIT" VALUE="Get one country">


Stacktrace:
 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
 sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 java.lang.reflect.Method.invoke(Method.java:597)
 org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
 java.security.AccessController.doPrivileged(Native Method)
 javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
 org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
 org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162) …
Run Code Online (Sandbox Code Playgroud)

java xml xslt jsp

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

为什么三元运算符不能这样工作?

为什么不编译?以下代码有什么问题?

(_DbContext == null) ? return _DbContext = new ProductAndCategoryEntities() : return _DbContext;
Run Code Online (Sandbox Code Playgroud)

如果我按照它编译的方式重述它:

 if (_DbContext == null)
                   return _DbContext = new ProductAndCategoryEntities();
               else return _DbContext;
Run Code Online (Sandbox Code Playgroud)

.net c# logic ternary-operator

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

为什么Math.Pow(-78.0921,-64.6294)返回NaN?

我有两个值:X = -78.0921Y = -64.6294.现在,当我想要计算Math.Pow(X, Y)它时,返回NaN.我该怎么办?我怎么解决这个问题?

我应该如何计算这个功率?还有其他功能可以计算出来吗?...或者它可能没有数学定义?

c#

2
推荐指数
3
解决办法
3720
查看次数

为什么循环在C++中执行此操作

好吧,初学者,放轻松.谢谢.

#include <iostream>
#include <windows.h>

using namespace std;
int main()
{

    int x = 0;
    bool while1 = true;
    while (while1)
    {
        cout << x << "\n";
        sleep(200);
        if (x < 10)
        {
            while1 = true;
        }
        else if (x >= 10)
        {
            while1 = false;
        }
        x = x+1;
    }
    cin.get();
}
Run Code Online (Sandbox Code Playgroud)

好吧,所以我不明白为什么程序甚至得到x到10如果我有if语句检查x <10之前我有1添加到x ...请解释.

c++

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