小编kra*_*itz的帖子

理解为什么弗洛伊德的龟兔赛跑算法适用于整数数组

我试图解决这个 leetcode 问题https://leetcode.com/problems/find-the-duplicate-number/使用我自己的龟兔算法实现,当给定以下整数数组时导致无限循环:

[3,1,3,4,2]

只有在跟踪我的算法之后,我才能看到慢速和快跑者永远不会同时接受两个重复的值。这是我的伪代码算法:

initialize fast and slow runners to 0

while(true)

   move fast runner two indices forward
   move slow runner one index forward

   if arr[fast] == arr[slow] and fast != slow
      return arr[fast] // this is the duplicate
Run Code Online (Sandbox Code Playgroud)

现在,我确信精通离散数学的人能够直观地知道这种方法不会导致正确的解决方案,而不必像我那样首先跟踪一个例子。

我可以做出哪些推断或观察来让我看到这个算法行不通?我想知道如何通过一系列逻辑陈述直观地识别此逻辑中的缺陷。换句话说,为什么两个跑步者永远不会在这个例子中找到重复的解释是什么?我觉得这可能与计数有关,但我在离散方面没有很强的背景。

澄清一下,我已经查看了正确的实现,所以我知道解决它的正确方法是什么。我只是认为这种方式与将其应用于链表的工作方式过于相似,您可以将快跑者向上移动两个节点,将慢跑者向上移动一个节点。感谢您的帮助。

algorithm logic discrete-mathematics

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

如何在Android Studio中制作带节点的进度条?

带节点的进度条

我正在尝试在 Android Studio 中制作类似的东西。我很确定我必须创建一个自定义视图,但我不确定要扩展哪个类。它看起来像一个进度条,但我见过的进度条示例都不是这样的。有谁熟悉如何实现这个?我不是在要求代码,更多的是朝着正确的方向推动(尽管如果有人手头上已经有它的源代码,那么看看会很棒)。谢谢你!

android

5
推荐指数
0
解决办法
798
查看次数

为什么 csrf 令牌通常存储在隐藏表单字段中?

我正在开发一个 React 应用程序,并正在考虑实施 CSRF 缓解技术。我决定使用同站点 cookie,但在此之前,我正在研究使用 CSRF 令牌并阅读大量帖子,称它们应该存储在隐藏的表单字段中。我想知道的是,将其存储在隐藏字段中和存储在类变量之类的东西中是否有区别?如果它的目的是在您准备向服务器发送请求时保留某个地方,那么它在客户端的存储方式是否重要?

javascript security csrf reactjs

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