leetcode 227. Basic Calculator II
摘要:from typing import List, Union class Solution: def calculate(self, s: str) -> int: """ T(n): O(n) S(n): O(n) 该算法实现了对一般表达式的求值,支持运算符 + - * / ^ 以及分界符号( )
阅读全文
Floyd 判定环数学证明
摘要:Floyd判定环的方法,也称为Floyd's Tortoise and Hare Algorithm,是一种有效地检测循环(或环)的算法。它的证明主要基于数学归纳法和反证法。 我们假设存在一个链表(或数组),其中包含着一个循环。慢指针(乌龟)每次移动一步,快指针(兔子)每次移动两步。如果存在循环,那
阅读全文
比较少见的排序算法
摘要:sort bucket sort 一种简单的桶分配方法是线性映射。假设有n个桶,输入数据的范围是[0, M),其中M是数据的最大值。对于输入数据x,可以使用如下的线性映射函数将其放入对应的桶中: 桶的编号为 [0, n) x_bucket_index=⌊n*x/M⌋ 演示网站 radix sort
阅读全文
leecode array 15. 三数之和
摘要:思路: 我们根据题目意思,可以移除nums里面的部分数字,规则如下:0的数量最多为3,其他数字的数量最多为2 我们创建两个map,分别记作map1和map2 其中 map1的k:nums[i], v:i; map2 为 k : nums[i] + nums[j], v 为 []int{i,j},在添
阅读全文
一个循环实现五子棋输赢判定 gobang
摘要:通过一个for循环实现五子棋输赢判定 看过好些人写的判定方法,发现基本都是使用三层for来遍历实现的虽然时间复杂度不是N^3但是如下算法时间复杂度仅仅是N 经过分析,时间复杂度的原因来自(x + i, y) in smallPointList->O(N)但是for i in range(-4, 5)
阅读全文