小编use*_*392的帖子

Manacher的算法(在线性时间内找到最长回文子串的算法)

在花了大约6-8个小时试图消化Manacher的算法之后,我准备好了.但在此之前,这是最后一次在黑暗中拍摄:有人可以解释一下吗?我不关心代码.我希望有人解释算法.

这里似乎是其他人在解释算法时似乎喜欢的地方:http: //www.leetcode.com/2011/11/longest-palindromic-substring-part-ii.html

我理解你为什么要把字符串转换成'#ab#'到#a#b#b#a#之后我就输了.例如,前面提到的网站的作者说该算法的关键部分是:

                      if P[ i' ] ? R – i,
                      then P[ i ] ? P[ i' ]
                      else P[ i ] ? P[ i' ]. (Which we have to expand past 
                      the right edge (R) to find P[ i ])
Run Code Online (Sandbox Code Playgroud)

这似乎是错误的,因为他/她在一点上说当P [i'] = 7并且P [i]不小于或等于R-i时P [i]等于5.

如果你不熟悉这个算法,这里有一些更多的链接:http://tristan-interview.blogspot.com/2011/11/longest-palindrome-substring-manachers.html(我试过这个,但是术语很糟糕,令人困惑.首先,有些东西没有定义.还有太多的变量.你需要一个清单来回忆一下变量是指哪些变量.)

另一个是:http://www.akalin.cx/longest-palindrome-linear-time(祝你好运)

该算法的基本要点是在线性时间内找到最长的回文.它可以在O(n ^ 2)中以最小到中等的努力量完成.这个算法应该非常"聪明"才能将其降低到O(n).

algorithm palindrome

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

如何从命令行安装Cudnn

Cudnn:https://developer.nvidia.com/cudnn

我登录并跳过NVIDIA希望你做的所有箍; 但是,当下载文件时,我似乎无法通过wget和命令行弄清楚如何做到这一点.

我希望有人这样做.我复制并粘贴了他们想要点击的链接,并在wget copy-and-pasteted-url中使用它.但我刚回来一个html文件.

cuda nvidia deep-learning

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

不理解Swift中的闭包示例

我正在努力学习快速和闭合.我坚持这个例子.

 numbers.map({
    (number: Int) -> Int in
    let result = 3 * number
    return result
 })
Run Code Online (Sandbox Code Playgroud)

什么是(数字:国际) - >国际?这是一个功能吗?它在哪里定义? https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2-ID1

关键字"in"有什么作用?文档说使用"将参数和返回类型从主体中分离".我不确定我明白这一点.为什么"in"不用于将"let result = 3*number"与"return result"分开.

closures dictionary ios swift

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

Caffe何时复制数据?

 // Assuming that data are on the CPU initially, and we have a blob.
 const Dtype* foo;
 Dtype* bar;
 foo = blob.gpu_data(); // data copied cpu->gpu.
 foo = blob.cpu_data(); // no data copied since both have up-to-date contents.
 bar = blob.mutable_gpu_data(); // no data copied.
 // ... some operations ...
 bar = blob.mutable_gpu_data(); // no data copied when we are still on GPU.
 foo = blob.cpu_data(); // data copied gpu->cpu, since the gpu side has modified the data
foo = …
Run Code Online (Sandbox Code Playgroud)

caffe

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

Swift 中本地参数名称和外部参数名称有什么区别

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18-ID203

struct Celsius {
    var temperatureInCelsius: Double
    init(fromFahrenheit fahrenheit: Double) {
        temperatureInCelsius = (fahrenheit - 32.0) / 1.8
    }
    init(fromKelvin kelvin: Double) {
        temperatureInCelsius = kelvin - 273.15
    }
}


let boilingPointOfWater = Celsius(fromFahrenheit: 212.0)
// boilingPointOfWater.temperatureInCelsius is 100.0
let freezingPointOfWater = Celsius(fromKelvin: 273.15)
// freezingPointOfWater.temperatureInCelsius is 0.0
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么 init 函数有 (fromFahrenheit fahrenheit: Double) 和 (fromFahrenheit fahrenheit: Double)。文档说:

“第一个初始化程序有一个初始化参数,其外部名称为 from Fahrenheit,本地名称为 fahrenheit。第二个初始化程序有一个初始化参数,其外部名称为 from Kelvin,本地名称为 kelvin。”

为什么我们需要这么多名字?

ios swift

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

如何从git中的一个且仅一个分支中删除文件

我想要一个分支来保存我的主分支中的所有文件,除了foo.txt和foo2.txt.我该怎么做呢?

git git-branch

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

在C中添加无符号整数

这是两个非常简单的程序.我希望得到相同的输出,但我没有.我无法弄清楚为什么.第一个输出251.第二个输出-5.我可以理解为什么251.但是,我不明白为什么第二个程序给了我-5.

计划1:

#include <stdio.h>

int main()
{

unsigned char  a;
unsigned char  b;
unsigned int  c;

a = 0;
b= -5;

c =  (a + b);

printf("c hex: %x\n", c);
printf("c dec: %d\n",c);

}
Run Code Online (Sandbox Code Playgroud)

输出:

c hex: fb
c dec: 251
Run Code Online (Sandbox Code Playgroud)

计划2:

#include <stdio.h>

int main()
{

unsigned char  a;
unsigned char  b;
unsigned int  c;

a = 0;
b=  5;

c =  (a - b);

printf("c hex: %x\n", c);
printf("c dec: %d\n",c);

}
Run Code Online (Sandbox Code Playgroud)

输出:

c hex: fffffffb
c dec: …
Run Code Online (Sandbox Code Playgroud)

c math integer-promotion unsigned-integer

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

这个C代码(来自lua库,Torch)如何编译/工作?

请参阅https://github.com/torch/nn/blob/master/generic/Tanh.c

例如,

 static int nn_(Tanh_updateOutput)(lua_State *L)
{
   THTensor *input = luaT_checkudata(L, 2, torch_Tensor);
   THTensor *output = luaT_getfieldcheckudata(L, 1, "output", torch_Tensor);

   THTensor_(resizeAs)(output, input);

   if (input->nDimension == 1 || !THTensor_(isContiguous)(input) || !THTensor_(isContiguous)(output))
   {
    TH_TENSOR_APPLY2(real, output, real, input,   \
     *output_data = tanh(*input_data););
    }
  else
  {
   real* ptr_output = THTensor_(data)(output);
   real* ptr_input  = THTensor_(data)(input);
   long i;
 #pragma omp parallel for private(i)
for(i = 0; i < THTensor_(nElement)(input); i++)
  ptr_output[i] = tanh(ptr_input[i]);
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)

首先,我不知道如何解释第一行:

 static int nn_(Tanh_updateOutput)(lua_State *L)
Run Code Online (Sandbox Code Playgroud)

这里的论点是什么?Tanh_updateOutput是指什么?"nn_"有特殊含义吗?

第二,"TH_TENSOR_APPLY2"和"THTensor _(...)"都被使用,但我看不到它们的定义?此文件中没有其他内容?

c lua luajit torch

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

KeyTyped方法说TextField是空白的...当它不是时

        Jtxtfield.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent e) {};
        public void keyTyped(KeyEvent e) {
            if(Jtxtfield.getText().equals(""))
            System.out.println("hello1");
        }public void keyReleased(KeyEvent e) {
            if(Jtxtfield.getText().equals(""))
            System.out.println("hello2");
        }
    });
Run Code Online (Sandbox Code Playgroud)

按下的第一个键的输出(例如,'a')是:hello1.如果我按第二个键(再说'a'),则没有输出(如预期的那样).如果我按两次删除键,我会得到hello1 hello2.

为什么会这样?为什么keyTyped方法将txtfield视为没有任何内容?更具体地说,当我按下文本字段中按下的第一个键时,为什么我只得到hello1?

java user-interface swing keylistener jtextfield

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

如何在swift中为数组分配一个数字片段

x 是一个包含一个名为point的数组的对象.

x实现下标运算符,这样你就可以做一些事情,比如x[i]得到数组的第i个元素(类型为T,通常是Int或Double).

这就是我想要做的:

 x[0...2] = [0...2]
Run Code Online (Sandbox Code Playgroud)

但是我收到的错误ClosedInterval<T>是无法转换为Int/Double.

EDIT1:

这是我的对象x:

let x = Point<Double>(dimensions:3)
Run Code Online (Sandbox Code Playgroud)

对于踢腿和咯咯:定义x[1.0,2.0,0.0]

我可以n通过获得第一个元素x[0...2].

我想知道的是如何一举更新x [0 ... 2]以保持[0.0,0.0.0.0].直觉上,我想做x[0...2] = [0...2].这在答案中可以看出不起作用.我想在x没有迭代的情况下更新(在我的最后)并隐藏x不是数组的事实(即使它不是).

swift swift-array

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

将数字向上舍入为int大小的边界字节数的方法

以下代码将参数向上舍入为int size边界字节数.

  #define _INTSIZE(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1))
Run Code Online (Sandbox Code Playgroud)

在我的机器上int是4个字节,所以 - 如果我错了,请纠正我 - 这应该与查找整数的4的下一个倍数(在我的机器上)相同.通过4的下一个倍数,我的意思是数字应该四舍五入为4的倍数,如果不是4的倍数.如果已经是4的倍数,则应该保持单独.

我一直在玩这个代码.它的长短是:为什么这段代码有效?(也许它没有,但它似乎.)我想有一些理由认为它适用于所有情况,而不仅仅是我尝试过的情况.

c macros bit-manipulation boundary c-preprocessor

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

从Accelerometer中删除重力...文档代码

 public void onSensorChanged(SensorEvent event)
 {
      // alpha is calculated as t / (t + dT)
      // with t, the low-pass filter's time-constant
      // and dT, the event delivery rate

      final float alpha = 0.8;

      gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
      gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
      gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];

      linear_acceleration[0] = event.values[0] - gravity[0];
      linear_acceleration[1] = event.values[1] - gravity[1];
      linear_acceleration[2] = event.values[2] …
Run Code Online (Sandbox Code Playgroud)

android

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

有没有办法在Swift中初始化一个数组,以获得某些Type T的重复值

在我的init函数中,我有:

 self.x = [T](count: dimensions, repeatedValue: 0)
Run Code Online (Sandbox Code Playgroud)

这不起作用.我如何让它工作.

我希望x是一个类型为T的数组,它被初始化为0.(T直观地像Int,但可能是其他数字表示.)

generics swift swift-array

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