算法
YancyKahn
这个作者很懒,什么都没留下…
展开
-
【Leetcode每日一题】143. 重排链表(转化成线性表)
Leetcode 每日一题题目链接:143. 重排链表解题思路: 将链表转化为线性表存储,然后通过下标进行重排。题解:class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = nextclass Solution: def reorderList(self, head: ListNode) -> None: """原创 2020-10-20 12:45:09 · 258 阅读 · 0 评论 -
【Leetcode每日一题】844. 比较含退格的字符串(栈)
Leetcode 每日一题题目链接:844. 比较含退格的字符串解题思路:用栈来解决,将两个字符串S,T处理后比较,注意栈为空时不能pop。题解:class Solution: def backspaceCompare(self, S: str, T: str) -> bool: s1 = self.solve(S) t1 = self.solve(T) return s1 == t1 def solve(self, s原创 2020-10-19 10:36:30 · 326 阅读 · 0 评论 -
【Golang基础】Go实现牛顿迭代用于计算平方根
Go实现牛顿迭代用于计算平方根牛顿迭代计算平方根的数学原理这里不做解释,给出迭代公式:要计算 x^2 = a 得到x的值。可以用以下公式进行迭代计算:下面为Go语言实现版本,作为Golang学习练习。package mainimport ( "fmt" "math")func Sqrt(x float64) float64 { lim := 1e-8 #迭代精度 count := 100 #最大迭代次数 now_index := 0 z_old := x #初始化 z_原创 2020-10-07 15:12:07 · 697 阅读 · 0 评论 -
时间复杂度和空间复杂度
时间复杂度## 1.时间频度概念 ## 一个算法的执行所消耗的时间,理论上是不能直接计算出来的,必须上机测试才能得到结果.对于算法我们只需要知道那个算法的时间长,那个算法的时间短就可以了.一个算法的执行时间是和算法的语句执行次数成正比的.一个算法中的语句执行次数称为时间频度或者语句频度,记作T(n). ## 2.时间复杂度概念 ## 对于一个算法,称问题的规模为n,若存在一个函转载 2017-08-08 11:37:08 · 342 阅读 · 0 评论 -
时间复杂度的计算
时间复杂度可分为以下几种类型: 常数阶,对数阶,线性阶,线性对数阶,平方阶,立方阶,幂次阶(按照幂从小到大),指数阶.我们一一讨论. 其中时间复杂度从小到大为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2^n)1.常数阶其中时间复杂度是一个与问题规模n无关的常数,不会趋近于无穷大,有一个确定的值,时间复杂度为O(1)原创 2017-08-08 12:29:22 · 1007 阅读 · 0 评论 -
Gradient Descnet (梯度下降)线性函数拟合
梯度是一个函数下降最快的方向, 使用梯度下降可以得到局部最优解 定义回归函数:       h(x) = theta0 + theta1 * x 定义代价函数:(误差函数)    &a原创 2018-06-26 10:18:27 · 443 阅读 · 0 评论