javascript

git

java

python

git-remote

c++

github

django

c#

reactjs

variables

var

loops

iteration

std

c++-faq

git-checkout

generator

coroutine

spring-mvc

算法-检查密码强度的最佳方法是什么?

确保用户提供的密码是注册或更改密码表格中的强密码的最佳方法是什么?

我有一个主意(在python中)

def validate_password(passwd):
    conditions_met = 0
    conditions_total = 3
    if len(passwd) >= 6: 
        if passwd.lower() != passwd: conditions_met += 1
        if len([x for x in passwd if x.isdigit()]) > 0: conditions_met += 1
        if len([x for x in passwd if not x.isalnum()]) > 0: conditions_met += 1
    result = False
    print conditions_met
    if conditions_met >= 2: result = True
    return result
trans by 2020-08-07T13:27:27Z

算法-快速计算n! mod m m是素数?

我很好奇是否有一个很好的方法可以做到这一点。 我当前的代码是这样的:

def factorialMod(n, modulus):
    ans=1
    for i in range(1,n+1):
        ans = ans * i % modulus    
    return ans % modulus

但是似乎很慢!

我也无法计算n! 然后应用素数模数,因为有时n太大以至于n! 只是显式地计算是不可行的。

我还遇到了[http://en.wikipedia.org/wiki/Stirling%27s_approximation],想知道是否可以在某种程度上使用它?

或者,如何在C ++中创建一个递归的,已记忆的函数?

trans by 2020-08-07T01:15:53Z

算法-查找图像中最大的凸黑色区域

我有一个图像,这是一个小切口:

Image with a lot of white and black pixels

如您所见,它是黑色背景上的白色像素。 我们可以在这些像素(或更好的点)之间绘制假想线。 通过这些线,我们可以封闭区域。

如何在此图像中找到最大的不包含白色像素的黑色凸起区域?

这是我最大的凸黑色区域的小手绘示例:

Small example

附言:图像不是噪点,它表示水平排序的10000000以下的质数。

trans by 2020-08-06T22:05:11Z

java-查找三元组中间值的最快方法?

给定的是三个数值的数组,我想知道三个数值的中间值。

问题是,找到这三个中间值的最快方法是什么?

我的方法是这种模式-因为有三个数字,所以有六个排列:

if (array[randomIndexA] >= array[randomIndexB] &&
    array[randomIndexB] >= array[randomIndexC])

如果有人可以帮助我找到更优雅,更快捷的方法,那将非常好。

trans by 2020-08-06T21:28:10Z

算法-计算在基于图块的游戏中点亮哪些图块(“光线追踪”)

我正在写一个小游戏,我想支持光源。 但是我的算法太弱了,因此我向您寻求帮助。

情况是这样的:有一个基于图块的地图(以2D阵列形式保存),其中包含一个光源和几处站立的物品。 我想计算哪些瓷砖被光源照亮,哪些在阴影中。

大致外观的视觉辅助。 L是光源,X是遮挡光线的项目,0是亮块,-s是阴影块。

0 0 0 0 0 0 - - 0
0 0 0 0 0 0 - 0 0
0 0 0 0 0 X 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 L 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 X X X X 0 0
0 0 0 - - - - - 0
0 0 - - - - - - -

当然,分数系统会更好,其中,由于部分遮挡了瓷砖,因此瓷砖可能处于半阴影状态。 该算法不一定是完美的-只是没有明显的错误并且相当快。

(当然,会有多个光源,但这只是一个循环。)

有没有人?

trans by 2020-08-06T13:02:21Z

算法-DJB哈希函数中5381编号的原因?

谁能告诉我为什么DJB哈希函数中使用数字5381?

DJB哈希函数是

h(0)= 5381

h(i)= 33 * h(i-1)^ str [i]

一个c程序:

unsigned int DJBHash(char* str, unsigned int len)
{
   unsigned int hash = 5381;
   unsigned int i    = 0;

   for(i = 0; i < len; str++, i++)
   {   
      hash = ((hash << 5) + hash) + (*str);
   }   

   return hash;
}
trans by 2020-08-06T07:56:28Z

平均Regex算法的时间复杂度是多少?

我对使用正则表达式并不陌生,并且我了解它们基于有限状态机的基本理论。

我不太擅长算法分析,也不了解正则表达式与基本线性搜索的比较。 我问是因为表面上看起来像是线性数组搜索。 (如果正则表达式很简单。)

在哪里可以了解有关实施正则表达式引擎的更多信息?

trans by 2020-08-06T03:20:27Z

算法-线性搜索和二进制搜索有什么区别?

线性搜索和二进制搜索有什么区别?

trans by 2020-08-05T09:17:51Z

nlp-从tex中检测短语和关键字的算法

我有大约100 MB的文本,没有任何标记,分为大约10,000个条目。 我想自动生成一个“标签”列表。 问题是有些词组(即词组)只有在将它们组合在一起时才有意义。

如果我只计算单词,我会得到很多真正常见的单词(例如,the,for,in,am等)。 我已经计算了单词及其前后的单词数量,但是现在我真的不知道下一步该怎么做。存在与2个单词和3个单词相关的信息,但是我该如何提取这些数据?

trans by 2020-08-04T14:31:46Z

排序-排序算法稳定的好处是什么?

如果排序保持键相等的元素的相对顺序,则该排序是稳定的。 我想我的问题确实是,维持这种相对秩序有什么好处? 有人可以举个例子吗? 谢谢。

trans by 2020-08-03T16:50:52Z

算法-Java Codility训练基因组范围查询

任务是:

给出了一个非空的零索引字符串S。 字符串S由大写英文字母A,C,G,T中的N个字符组成。

该字符串实际上代表DNA序列,大写字母代表单个核苷酸。

还为您提供了由M个整数组成的非空零索引数组P和Q。 这些数组表示有关最小核苷酸的查询。 我们将字符串S的字母表示为数组P和Q中的整数1、2、3、4,其中A = 1,C = 2,G = 3,T = 4,并假定A <C <G <T 。

查询K要求您从范围(P [K],Q [K])中找到最小的核苷酸,0≤P [i]≤Q [i] <N。

例如,考虑字符串S = GACACCATA和数组P,Q,使得:

P[0] = 0    Q[0] = 8
P[1] = 0    Q[1] = 2
P[2] = 4    Q[2] = 5
P[3] = 7    Q[3] = 7

这些范围内的最小核苷酸如下:

    (0, 8) is A identified by 1,
    (0, 2) is A identified by 1,
    (4, 5) is C identified by 2,
    (7, 7) is T identified by 4.

编写一个函数:

class Solution { public int[] solution(String S, int[] P, int[] Q); } 

假设给定一个由N个字符组成的非空零索引字符串S和两个由M个整数组成的非空零索引数组P和Q,则返回一个由M个字符组成的数组,指定所有查询的连续答案。

该序列应返回为:

    a Results structure (in C), or
    a vector of integers (in C++), or
    a Results record (in Pascal), or
    an array of integers (in any other programming language).

例如,给定字符串S = GACACCATA和数组P,Q,使得:

P[0] = 0    Q[0] = 8
P[1] = 0    Q[1] = 2
P[2] = 4    Q[2] = 5
P[3] = 7    Q[3] = 7

该函数应返回值[1,1,2,4],如上所述。

假使,假设:

    N is an integer within the range [1..100,000];
    M is an integer within the range [1..50,000];
    each element of array P, Q is an integer within the range [0..N − 1];
    P[i] ≤ Q[i];
    string S consists only of upper-case English letters A, C, G, T.

复杂:

    expected worst-case time complexity is O(N+M);
    expected worst-case space complexity is O(N), 
         beyond input storage 
         (not counting the storage required for input arguments).

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

我的解决方案是:

class Solution {
    public int[] solution(String S, int[] P, int[] Q) {
        final  char c[] = S.toCharArray();
        final int answer[] = new int[P.length];
        int tempAnswer;
        char tempC;

        for (int iii = 0; iii < P.length; iii++) {
            tempAnswer = 4;
            for (int zzz = P[iii]; zzz <= Q[iii]; zzz++) {
                tempC = c[zzz];
                if (tempC == 'A') {
                    tempAnswer = 1;
                    break;
                } else if (tempC == 'C') {
                    if (tempAnswer > 2) {
                        tempAnswer = 2;
                    }
                } else if (tempC == 'G') {
                    if (tempAnswer > 3) {
                        tempAnswer = 3;
                    }

                }
            }
            answer[iii] = tempAnswer;
        }

        return answer;
    }
}

这不是最佳选择,我认为应该在一个循环中完成,这提示我如何实现?

您可以在此处[https://codility.com/train/]检查解决方案的质量,测试名称为Genomic-range-query。

trans by 2020-08-03T16:30:49Z

ios-Swift:将[String]分割成给定子数组大小的[[String]]的正确方法是什么?

从较大的[String]和给定的子数组大小开始,将这个数组拆分为较小的数组的最佳方法是什么? (最后一个数组将小于给定的子数组大小)。

具体示例:

以最大分割尺寸2分割[“ 1”,“ 2”,“ 3”,“ 4”,“ 5”,“ 6”,“ 7”]

该代码将产生[[“ 1”,“ 2”],[“ 3”,“ 4”],[“ 5”,“ 6”],[“ 7”]]

显然,我可以手动进行一些操作,但是我觉得像map()或reduce()这样的快速操作可能确实可以实现我想要的效果。

trans by 2020-08-03T12:26:10Z

递归-将递归算法转换为迭代算法的设计模式

是否有任何通用的启发式方法,技巧,窍门或通用设计范例可用于将递归算法转换为迭代算法? 我知道这是可以做到的,我想知道这样做是否值得牢记。

trans by 2020-08-02T18:44:38Z

java-从多个列表生成所有组合

给定数量未知的列表,每个列表的长度都未知,我需要生成一个包含所有可能唯一组合的单数列表。例如,给出以下列表:

X: [A, B, C] 
Y: [W, X, Y, Z]

然后,我应该能够生成12种组合:

[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]

如果添加了3个元素的第三个列表,我将有36个组合,依此类推。

关于如何在Java中执行此操作的任何想法?
(伪代码也可以)

trans by 2020-08-02T14:54:03Z

javascript-优化重叠矩形的绘制

我有很多矩形,有些矩形重叠。 每个矩形都有一个绝对的z顺序和一种颜色。 (每个“矩形”实际上都是粒子效果,网格或纹理的与轴对齐的边界框,并且可能是半透明的。但是,只要您不尝试将矩形剔除在其他矩形之后,它就更容易抽象化地思考彩色矩形。 ,因此我将在问题描述中使用它:)

改变“颜色”的成本很高。 连续绘制两个蓝色矩形比绘制两个不同颜色的矩形要快得多。

绘制甚至不在屏幕上的矩形的成本也很高,应该避免。

如果两个矩形不重叠,则它们相对于另一个的绘制顺序并不重要。 仅当它们重叠时,z顺序才重要。

例如:

Overlapping Rectangles

1(红色)和4(红色)可以绘制在一起。 也可以将2(蓝色)和5(蓝色)以及3(绿色)和7(绿色)绘制在一起。 但是必须在6(蓝色)之后绘制8(红色)。 因此,要么将所有三个红色绘制在一起,然后在两组中绘制蓝色,要么将所有蓝色绘制在一起,然后在两组中绘制红色。

并且某些矩形可能偶尔移动。 (并非全部;已知某些矩形是静态的;已知其他矩形是可移动的。)

我将在JavaScript / webGL中绘制此场景。

如何以合理的顺序绘制矩形,以最大程度地减少颜色变化,同时在JavaScript剔除代码与GPU剔除之间做出很好的权衡?

(仅计算出哪些矩形重叠以及哪些矩形可见是昂贵的。我有一个基本的四叉树,这极大地加快了我的场景的绘制速度(相比之下,只为整个场景发出绘制内容);现在的问题是如何最小化OpenGL 状态更改并尽可能串联属性数组)

更新我创建了一个非常简单的测试应用程序来说明问题并用作演示解决方案的基础:[http://williame.github.com/opt_rects/]

源代码位于github上,可以轻松地分叉:[https://github.com/williame/opt_rects]

事实证明,很难做一个带有足够状态更改的小测试应用程序来真正重现我在完整游戏中看到的问题。 在某些时候,必须考虑到状态更改可能会非常昂贵。 同样重要的是如何加快空间索引(演示中的四叉树)和整体方法。

trans by 2020-08-02T05:27:27Z

CodeGo.net>如何舍入到最接近的偶数整数?

我的最后一个目标始终是四舍五入到最接近的偶数整数。

例如,作为结果1123的号码是1123。我已经尝试过以下选项:

Math.Round(1122.5196d, 0, MidpointRounding.ToEven);       // result 1123
Math.Round(1122.5196d, 0, MidpointRounding.AwayFromZero); // result 1123

最后,我想要得到的始终是最接近的偶数整数。 例如:

  • 1123.0 --> 1124
  • 1123.0 --> 1124(因为最接近的整数是1123,但它是奇数,而11221124更近)
  • 1123.0 --> 1124(下一个偶数,下一个较高的偶数)

我只使用正数。

等等。

有一些方法可以做到这一点,或者我应该实现自己的方法?

trans by 2020-08-01T19:16:25Z

算法-创建自己的MD5冲突

我正在做一个关于MD5碰撞的演示,我想让人们知道碰撞的可能性。

最好有两个文本块散列到同一件事上,并解释在我撞车之前需要多少[a-zA-Z]组合。

显而易见的答案是对所有可能的组合进行哈希处理,直到命中相同的两个哈希。 那么您将如何进行编码。 作为一个快速实验,我尝试对[A-Z]的5列的每个组合进行哈希处理,将其存储在.net哈希表中并捕获冲突异常。 这有两个问题-哈希表最终超时,并且我确定我将需要更多的字符。

显然,此数据结构太大,无法在内存中处理,因此现在我必须要涉及一个数据库。 听起来像是测试天蓝色的好项目-有点像这些家伙。

谁能指出我这样做的有效方向?

trans by 2020-08-01T18:27:47Z

算法-“近似”最大公约数

假设您有一个浮点数列表,它们大约是一个公共数量的倍数,例如

2.468, 3.700, 6.1699

大约是1.234的所有倍数。 您将如何表征此“近似gcd”,又将如何进行计算或估算?

与我对这个问题的回答密切相关。

trans by 2020-07-31T03:46:39Z

算法-5个排序数组的中位数

我试图找到5个排序数组中位数的解决方案。 这是一次面试的问题。

我能想到的解决方案是合并5个数组,然后找到中位数[O(l + m + n + o + p)]。

我知道对于2个相同大小的排序数组,我们可以在log(2n)中进行。 [通过比较两个数组的中位数,然后扔掉每个数组的一半,然后重复该过程]。 ..在排序数组中找到中位数可以是恒定时间..所以我认为这不是log(n)吗? ..这的时间复杂度是多少?

1]是否有针对5个数组的类似解决方案。 如果数组大小相同怎么办,有没有更好的解决方案呢?

2]我假设既然要求5,那么对N个排序的数组会有一些解决方案吗?

感谢您的指导。

我向面试官问了一些澄清/问题:
长度相同的数组
=>否
我想数组的值会有重叠
=>是的

作为练习,我认为2个数组的逻辑不会扩展。 尝试一下:
将上述2个数组的逻辑应用于3个数组:[3,7,9] [4,8,15] [2,3,9] ...中位数7,8,3
抛出元素[3,7,9] [4,8] [3,9] ..中位数7,6,6
抛出元素[3,7] [8] [9] ..medians 5,8,9 ...
抛出元素[7] [8] [9] ..中位数= 8 ...这似乎不正确吗?

已排序元素的合并=> [2,3,4,7,8,9,15] =>预期中位数= 7

trans by 2020-07-31T02:59:31Z

算法-两个矩形重叠多少?

我有两个矩形a和b,它们的边平行于坐标系的轴。 我的坐标为x1,y1,x2,y2。

我正在尝试确定,不仅它们重叠,而且多少重叠? 我试图弄清楚它们是否真的是同一个矩形,给或留出一些摆动空间。 那么他们的面积95%相同吗?

对计算重叠百分比有帮助吗?

trans by 2020-07-30T06:20:33Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共33页