小编Roh*_*dey的帖子

在O(n)时间内找到nxn矩阵中的局部最小值

所以,这不是我的家庭工作问题,而是取自关于算法和数据结构(现已完成)课程的未分级作业.

您将获得一个n×n个不同数字的网格.如果数字小于其所有邻居,则该数字是局部最小值.(一个数字的邻居是紧靠上方,下方,左侧或右侧的一个.大多数数字有四个邻居;侧面的数字有三个;四个角有两个.)使用分而治之的算法设计用于计算局部最小值的范例,仅对数字对进行O(n)比较.(注意:由于输入中有n 2个数字,因此您无法查看所有数字.提示:考虑哪种类型的重复会为您提供所需的上限.)

由于数字不是任何顺序,我不知道除了O(n 2)比较之外我们怎么能逃脱任何事情.

algorithm search

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

在RHEL 6上安装R.

我的问题类似于这个问题 - 在Linux CentOS 6.3上安装R的问题

我安装了epel,但是当我运行yum install R时,我得到了两个依赖问题 -

错误:包:R-core-3.0.1-2.el6.x86_64(epel)需要:libjpeg.so.62(LIBJPEG_6.2)(64位)

错误:包:R-core-devel-3.0.1-2.el6.x86_64(epel)需要:texinfo-tex

我尝试使用rpm文件安装texinfo-tex - http://rpm.pbone.net/index.php3/stat/4/idpl/15993086/dir/scientific_linux_6/com/texinfo-tex-4.13a-8.el6 .x86_64.rpm.html

但是,这会让我陷入一个缺少依赖关系的长树.我下载并尝试安装5个不同的rpm文件,每次都有一些缺少的依赖项.Ans这只是这棵依赖树的一个分支.我想,必须有一个更好的方法.有人可以帮忙吗?这让我疯了.

编辑:我正在尝试的另一个选项是从源代码构建R.但是不确定这是否适用于丢失的包.但是现在它说它找不到fortran编译器("找不到F77编译器").我安装了gcc,认为它会有一个,但显然不是.

linux install r rhel6

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

找到JAVA_HOME并在RHEL上设置它

我刚刚在RHEL机器上安装了java.现在,我正在尝试运行一个需要设置JAVA_HOME变量的程序.找出我的java安装的安装目录然后设置JAVA_HOME的最佳方法是什么?以下是运行java-版本的结果:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我有一个/ usr/lib/jvm目录,但它是空的.

java linux

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

每日时间序列与ts ..如何指定开始和结束

我有一个每日时间序列,从星期六开始,到星期三结束.每周都有明显的周期.它存储在R中的向量a中.所以,我尝试将其转换为时间序列对象 -

ts(a,frequency=7)
Run Code Online (Sandbox Code Playgroud)

这给了我 -

Time Series:
Start = c(1, 1) 
End = c(13, 5) 
Run Code Online (Sandbox Code Playgroud)

(1,1)和(13,5)是什么意思?在这种情况下,指定开始和结束的最佳方法是什么.互联网上的所有示例都处理年度数据,而不是每天.

r time-series

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

带有空令牌的 Java StringTokenizer

我有一个看起来像 - 56,0,76,0,93,,,,,,,1230 的字符串。我使用 StringTokenizer 将其拆分为“,”。然而,这似乎是从 93 直接跳到 1230。有没有办法让它在移动到 1230 之前返回六个空字符串?

java stringtokenizer

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

LinkedHashMap 和 TreeMap 哪个更快?

我有一些数据将按排序顺序出现(首先按排序顺序排列整组键,然后按随机顺序重复)。因此,我可以使用 LinkedHashMap 或 TreeMap 来保留顺序(对吗?)。那么我的问题是,它们中哪个更快,哪个更节省空间?

java hash

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

最大产品前缀字符串

以下是一个名为codility的编码访谈网站的演示问题:

字符串S的前缀是S的任何前导连续部分.例如,"c"和"cod"是字符串"codility"的前缀.为简单起见,我们要求前缀非空.

字符串S的前缀P的乘积是P的出现次数乘以P的长度.更准确地说,如果前缀P由K个字符组成并且P在S中恰好出现T次,那么乘积等于K*T.

例如,S ="abababa"具有以下前缀:

  • "a",其产品等于1*4 = 4,
  • "ab",其产品等于2*3 = 6,
  • "aba",其产品等于3*3 = 9,
  • "abab",其产品等于4*2 = 8,
  • "ababa",其产品等于5*2 = 10,
  • "ababab",其产品等于6*1 = 6,
  • "abababa",其产品等于7*1 = 7.

最长的前缀与原始字符串相同.目标是选择这样的前缀以最大化产品的价值.在上面的例子中,最大乘积是10.

以下是我在Java中的糟糕解决方案,需要O(N ^ 2)时间.显然可以在O(N)中执行此操作.我在考虑Kadanes算法.但我想不出任何可以在每个步骤编码某些信息的方法,让我找到运行的最大值.任何人都可以为此考虑O(N)算法吗?

import java.util.HashMap;

class Solution {
    public int solution(String S) {
        int N = S.length();
        if(N<1 || N>300000){
            System.out.println("Invalid length");
            return(-1);
        }
        HashMap<String,Integer> prefixes = new HashMap<String,Integer>();
        for(int i=0; i<N; i++){
            String keystr = "";
            for(int j=i; j>=0; j--) {
                keystr += S.charAt(j);
                if(!prefixes.containsKey(keystr))
                    prefixes.put(keystr,keystr.length());
                else{
                    int newval = prefixes.get(keystr)+keystr.length();
                    if(newval …
Run Code Online (Sandbox Code Playgroud)

algorithm performance dynamic-programming kadanes-algorithm

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

Scipy FFT - 如何获得相位角

我在使用 python 中的 scipy fft 模块获取简单正弦曲线的相位时遇到问题。我密切关注教程并将 matlab 代码转换为 python。但是,无论我使用哪个阶段作为输入,图表始终显示 3。我缺少什么?

import numpy as np
import matplotlib.pyplot as plt
import scipy.fftpack
import cmath
A=10
fc = 10
phase=60
fs=32#Sampling frequency with oversampling factor of 32

t = np.arange(0,2,1/fs)

#Convert the phase shift to radians from degrees.
phi = phase*np.pi/180

x=A*np.cos(2*np.pi*fc*t+phi)

N=256
X = scipy.fftpack.fftshift(scipy.fftpack.fft(x,N))/N

df=fs/N #Frequency resolution.
sampleindex = np.arange(-N/2,N/2,1) #Ordered index for FFT plot.
f = sampleindex*df #x-axis index continued to ordered frequencies

raw_phases = np.angle(X)

X2=np.copy(X)#Store the …
Run Code Online (Sandbox Code Playgroud)

python fft scipy

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

在matlab中绘制多个系列

以下命令产生一些非常奇怪的结果 -

 plotyy(1:3,2:4,3:5,4:6)
hold on
plotyy(1:3,2.1:4.1,3:5,4.1:6.1)
Run Code Online (Sandbox Code Playgroud)

我基本上想在左侧y轴上绘制两个不同的系列,在右侧y轴上绘制另外两个系列.上面的命令适用于左侧系列,但会为正确的结果产生奇怪的结果.第二条绿线看起来不应该.

matlab plot

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

ArrayList <Double> to double [],有3亿条目

我正在使用java程序从数据库中获取一些数据.然后我计算一些数字并开始将它们存储在一个数组中.我正在使用的机器有4台RAM.现在,我不知道预先会有多少数字,所以我使用了ArrayList<Double>.但是我知道会有大致的数字300 million numbers.

因此,由于一个double是8个字节,因此该数组将消耗的内存的粗略估计是2.4 gigs(可能更多是因为ArrayList的开销).在此之后,我想计算这个数组的中位数,并使用org.apache.commons.math3.stat.descriptive.rank.Median作为double[]数组输入的库.所以,我需要转换ArrayList<Double>double[].

我确实看到了很多问题,并且他们都提到没有办法绕过整个阵列.现在这很好,但由于它们也将两个对象都保存在内存中,这使我的内存需求高达4.8演出.现在我们遇到了一个问题,因为总RAM可用我们4演出.

首先,我怀疑该程序在某些时候会给我一个正确的内存错误(它当前正在运行)?如果是这样,我如何计算中位数而不必分配双倍内存?我想避免排序数组,因为计算中位数是O(n).

java memory median

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