[leetcode]生词
递归
函数调用自己(参数可能不同),有递要有归(截止条件)
双指针
适合:需要移动左右两头的问题
动态规划
把计算过的值存起来,下次调用,就能减少计算量
二分查找
也称折半查找(Binary Search),是一种在有序数组中查找某一特定元素的搜索算法。算法复杂度O(logn)。
店小二:之前的鱼,30个铜板一条,今天的我猜26个铜板。
袁厨:贵了。
店小二:还贵呀!那我猜20个铜板!
袁厨:还是贵了。
店小二:15个铜板。
袁厨:便宜了
店小二:18个铜板
袁厨:恭喜你猜对了
https://leetcode-cn.com/problems/search-in-rotated-sorted-array/solution/cong-ji-ben-de-er-fen-fa-shuo-qi-ru-he-a-hof5/
nums[mid]<target,则left=mid+1,即上半段
https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/solution/yi-wen-dai-ni-gao-ding-er-fen-cha-zhao-j-00kj/
时间空间复杂度
「时间复杂度」执行当前算法所消耗的时间
大O符号表示法 :即 T(n) = O(f(n))——https://zhuanlan.zhihu.com/p/50479555
常数阶O(1):没有循环等复杂结构
线性阶O(n):for循环里面的代码会执行n遍
对数阶O(logN):每次都将 i 乘以 2,乘完之后,i 距离 n 就越来越近了
线性对数阶O(nlogN):将时间复杂度为O(logn)的代码循环N遍的
平方阶O(n²):把 O(n) 的代码再嵌套循环一遍
O(n³):相当于三层n循环,其它的类似。
「空间复杂度」执行当前算法需要占用多少内存空间,输出数组不被视为额外空间
一个算法在运行过程中临时占用存储空间大小的一个量度
O(1):不随被处理数据量n的大小而改变,“没有中间结果数组,只有输出数组”
O(n): 算法的空间复杂度与n成线性比例关系;“构造了一个长为n的数组暂存中间结果”
贪心算法
它在每一步都做出最优解,也就是说,它总是做出局部最优解,寄希望于通过局部最优解来获得全局最优解。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现