数据结构与算法
文章平均质量分 54
数据结构与算法
虎起来
这个作者很懒,什么都没留下…
展开
-
贪心算法-买卖股票的好时机(一)
在第3天(股票价格 = 2)的时候买入,在第6天(股票价格 = 7)的时候卖出,最大利润 = 7-2 = 5 ,不能选择在第2天买入,第3天卖出,这样就亏损7了;同时,你也不能在买入前卖出股票。假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益。1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天。要求:空间复杂度 O(1),时间复杂度 O(n)原创 2022-10-14 18:19:47 · 307 阅读 · 0 评论 -
BM4 合并两个排序的链表
0 \le n \le 10000≤n≤1000,-1000 \le 节点值 \le 1000−1000≤节点值≤1000。输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)// 递归计算 list1, list2.next。// list1 list2为空的情况。// 两个链表元素依次对比。原创 2022-09-20 16:58:42 · 155 阅读 · 0 评论 -
链表中的节点每k个一组翻转
递归:如果这个链表有n个分组可以反转,我们首先对第一个分组反转,接下来将剩余n−1个分组反转后的结果接在第一组后面就行了,那这剩余的n−1组就是一个子问题。原创 2022-09-20 16:55:42 · 439 阅读 · 0 评论 -
链表内指定区间反转
给出的链表为 1\to 2 \to 3 \to 4 \to 5 \to NULL1→2→3→4→5→NULL, m=2,n=4m=2,n=4,将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)。返回 1\to 4\to 3\to 2\to 5\to NULL1→4→3→2→5→NULL.要求:时间复杂度 O(n)O(n) ,空间复杂度 O(n)O(n)进阶:时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)原创 2022-09-07 16:17:16 · 331 阅读 · 0 评论 -
反转链表、栈、双向链表、递归实现
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。//每次访问的原链表节点都会成为新链表的头结点,//先保存访问的节点的下一个节点,保存起来。//其实就是把新链表挂到访问的原链表节点的。如当输入链表{1,2,3}时,//重新赋值,继续访问。//留着下一步访问的。原创 2022-09-02 18:21:26 · 202 阅读 · 0 评论 -
151.颠倒字符串中的单词
给你一个字符串 s ,颠倒字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。示例 1:输入:s = “the sky is blue”输出:“blue is sky the”示例 2:输入:s = " hello world "原创 2022-05-11 17:29:26 · 182 阅读 · 0 评论 -
最长字符串链
给出一个单词数组 words ,其中每个单词都由小写英文字母组成。如果我们可以 不改变其他字符的顺序 ,在 wordA 的任何地方添加 恰好一个 字母使其变成 wordB ,那么我们认为 wordA 是 wordB 的 前身 。例如,“abc” 是 “abac” 的 前身 ,而 “cba” 不是 “bcad” 的 前身词链是单词 [word_1, word_2, …, word_k] 组成的序列,k >= 1,其中 word1 是 word2 的前身,word2 是 word3 的前身,依此类推原创 2022-05-11 15:48:35 · 390 阅读 · 0 评论