小编cha*_*ny1的帖子

生成从0到N-1的随机整数,该整数不在列表中

你得到了N和一个int K[].

手头的任务是生成一个0 to N-1在K 之间不存在的相等的概率随机数.

N严格来说是整数>= 0.并且K.length是<N-1.并且0 <= K[i] <= N-1.还假设K被排序并且K的每个元素是唯一的.

您将获得一个uniformRand(int M)在该范围内生成均匀随机数的0 to M-1函数.并假设此函数的复杂度为O(1).

例:

N = 7

K = {0,1,5}

该函数应以相同的概率返回任意随机数{2,3,4,6}.

我可以得到一个O(N)解决方案:首先生成0到N-K.length之间的随机数.并将如此生成的随机数映射到不在K中的数字.第二步将复杂度设为O(N).可以在O(log N)中做得更好吗?

algorithm

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

Retrofit 2.0中"Android和Java的类型安全的HTTP客户端"的含义

有人可以解释一下Retrofit标语的含义:

适用于Android和Java的类型安全的HTTP客户端

retrofit2

8
推荐指数
2
解决办法
2503
查看次数

Gradle:堆栈溢出错误

我在 IDEA 中使用 Gradle 并得到以下输出。

* What went wrong:
A problem occurred evaluating script.
> java.lang.StackOverflowError (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Run Code Online (Sandbox Code Playgroud)

stack-overflow gradle

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

如何投放Youtube等视频?几乎即时发挥和快速寻求

如何投放像Youtube这样的视频呢?即使视频很长(大约2个小时)并且以高清方式观看,它几乎可以立即播放并且寻找尚未加载的部分非常快.

我正在使用Rackspace的专用服务器,100Mb上/下进行此测试,我的ping时间低于50ms到服务器.我的本地互联网连接是10Mb,当我从服务器下载东西时,我可以最大化我的互联网连接,因此连接到服务器不是问题.

我试图模仿这个,我尝试使用H264流模块使用Wowza和Pseudostreaming实时流式传输.两者都无法与Youtube提供视频的速度相提并论.

视频测试文件为MP4(h.264),300MB,2小时长,总比特率设置为500kbps,JWPlayer作为视频播放器

  • Wowza Streaming(RTMP) - 加载然后播放视频很快,但没有youtube快.寻求不是那么快,移动到新位置并继续播放视频需要大约5-7秒.

  • 伪丢弃H264流模块(HTTP) - 加载视频需要很长时间,因为它在播放之前首先下载视频标头.一个2小时的视频有大约2.5MB的MOOV ATOM(视频头文件),它需要先播放才能播放.一旦开始播放,寻求不下载的部分与Wowza相同,但不如Youtube快.

以Youtube的速度提供视频需要什么?我还需要它来暂停/下载视频,就像Youtube一样暂停,所以像Wowza这样的Real Streaming就出来了.

使用H264 Streaming模块的伪流程本来不错,因为它在暂停时会缓冲,只是初始加载时间非常长!无论如何,我可以删除初始加载时间?

我还有什么其他选择?我对我可以在服务器中使用的任何其他选项持开放态度.

youtube streaming video-streaming progressive-download pseudo-streaming

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

Gradle Exec:为什么它不在配置阶段运行?

这是我的:

构建.gradle

task makeDirectoryStructure(type:Exec){

    description 'Creates directory structure .'

    commandLine 'mkdir'
    args '-p' ,'top_dir/sub_dir_1/sub_dir_2'
    println "This line is printed in configuration phase."
}
Run Code Online (Sandbox Code Playgroud)

现在,由于我还没有使用“ << ”或<“ doFirst/doLast ”,我希望mkdir在配置阶段即在编译构建脚本时执行。例如,如果我这样做

$gradle tasks
Run Code Online (Sandbox Code Playgroud)

我希望 mkdir 在配置阶段运行,即我的目录结构应该形成但没有发生。

但是我得到这个输出:

yogeshwardancharan@yogeshwardancharan-Lenovo-G570:~/android_learning_resources/gradle_resources/ud867/1.01-Exercise-RunYourFirstTask$ gradle tasks
This line is printed in configuration phase.
:tasks

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]

Help tasks
----------
components - Displays …
Run Code Online (Sandbox Code Playgroud)

exec mkdir gradle

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

配置文件特定属性与环境变量

使用Spring-boot,我们可以在Profile特定属性文件中存储不同环境的配置参数,但是这会使配置成为12因素原则不推荐的代码的一部分.

相反,12 -factor建议在环境中存储配置(这里,配置专门表示其值在不同环境中变化的参数).

在环境Vs特定于配置文件的属性文件中存储配置的优缺点是什么?

spring development-environment config 12factor spring-boot

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

Python3:字典构造函数是否创建深层副本?

我试图理解 Python3 中浅复制与深复制的概念。

从下面的代码中我发现 dict2 中所做的更改没有反映在 dict1 中。

1>>> dict1 = {1:[1,2]}
2>>> dict2 = dict(dict1)
3>>> dict2[1]=[1,2,3]
4>>> dict1,dict2
({1: [1, 2]}, {1: [1, 2, 3]})
Run Code Online (Sandbox Code Playgroud)

我是否正确理解上面代码中的第 2 行创建了深层副本?

python deep-copy python-3.x

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

2D矢量声明之间的差异

这可能听起来很简单,但我有点困惑.我想知道的是c ++中这两个向量声明之间的区别.

vector<  vector<int> >a(some_size)

vector<int>b[some_size]
Run Code Online (Sandbox Code Playgroud)

我想知道我们可以使用其中一个但不能使用其他一个的情况.请提供除依赖于固定大小的数组和可变大小的向量的情况以外的情况.请提供示例代码以证明您的观点.

提前致谢.

c++ vector

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

Android Studio安装 - 无法运行mksdcard SDK工具.在32位Ubuntu 12.10上

所以,我正在尝试安装Android Studio

操作系统:UBUNTU 12.10,32位.

我每次因为互联网连接速度慢而卡住并在终端显示Connection Lost时尝试安装3-4次.

现在,这次我再次这样做了

./studio.sh

表明

无法运行mksdcard SDK工具.此失败的一个常见原因是缺少必需的库请修复基础问题并重试.

我看到各种帖子显示这发生在64位操作系统和使用安装库

sudo apt-get install ia32-libs

要么

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc ++ 6

将安装所需的32位库,但我已经在32位操作系统上.

当我尝试以上命令时,我明白了

E:包'ia32-libs'没有安装候选者.

软件中心也显示负面结果: 在此输入图像描述

所以,关键是有人在32位UBUNTU 12.10操作系统中遇到过这种情况.任何解决方法将不胜感激.

当我尝试为Ubuntu安装提到的库时编辑1输出.

yogeshwardancharan @ ubuntu:〜/ Android/Sdk/tools $ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc ++ 6读取包列表...完成构建依赖关系树
读取状态信息...完成包lib32bz2-1.0不可用,但由另一个包引用.这可能意味着包丢失,已被淘汰或仅可从其他来源获得

包lib32ncurses5不可用,但由另一个包引用.这可能意味着包丢失,已被淘汰或仅可从其他来源获得

包lib32stdc ++ 6不可用,但是由另一个包引用.这可能意味着包丢失,已被淘汰或仅可从其他来源获得

包lib32z1不可用,但由另一个包引用.这可能意味着包丢失,已被淘汰或仅可从其他来源获得

E:包'lib32z1'没有安装候选E:包'lib32ncurses5'没有安装候选E:包'lib32bz2-1.0'没有安装候选E:包'lib32stdc ++ 6'没有安装候选

在上面的输出中提到可以从其他来源获得包裹......有人可以请求帮助,该来源可能是什么?

是否可以从源代码编译这些库.如果是这样,我该怎么办?

谢谢.

android-studio

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