算法
文章平均质量分 70
ws6tg
这个作者很懒,什么都没留下…
展开
-
链表操作例题
反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]def reverseList(self, head: ListNode) -> ListNode: l=None while head:#如果该节点存在 f=head.next #保存该原创 2022-03-29 19:25:27 · 348 阅读 · 0 评论 -
位运算例题
位运算位运算是算法题里比较特殊的一种类型,它们利用二进制位运算的特性进行一些奇妙的优化和计算。常用的位运算符号包括:“∧”按位异或、“&”按位与、“|”按位或、“∼”取反、“<<”算术左移和“>>”算术右移。以下是一些常见的位运算特性,其中 0s 和 1s 分别表示只由 0 或 1构成的二进制数字。x ^ 0s = x x & 0s = 0 x | 0s = xx ^ 1s = ~x x & 1s = x x | 1s = 1原创 2022-03-29 13:32:14 · 885 阅读 · 0 评论 -
kmp算法
实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:haystack = "hel原创 2022-03-29 13:31:39 · 90 阅读 · 0 评论 -
算法排序笔记
算法是什么计算=信息处理借助某种工具,遵照一定规则,以明确而机械的形式进行计算模型=计算机=信息处理工具所谓算法,即特定计算模型下,旨在解决特定问题的指令序列输入 待处理的信息(问题)输出 经处理的信息(答案)正确性 的确可以解决指定的问题确定性 任一算法都可以描述为一个由基本操作组成的序列可行性 每一基本操作都可实现,且在常数时间内完成有穷性 对于任何输入,经有穷次基本操作,都可以得到输出程序等于算法加数据结构两个主要方面时间复杂度空间复杂度O、Θ、Ω、o、ω原创 2022-03-29 13:31:05 · 962 阅读 · 0 评论 -
动态规划例题
动态规划这里我们引用一下维基百科的描述:“动态规划(Dynamic Programming, DP)在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间 · · · · · · 动态规划只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地原创 2022-03-17 16:30:39 · 323 阅读 · 0 评论