- 博客(7)
- 收藏
- 关注
原创 力扣买卖股票的最佳时机
在第 i 天 卖出股票 dp[ i ][ 1 ] = dp[ i ][ 0 ] + prices[ i ]如果第 i - 1 天就持有股票 dp[ i ][ 0 ] = dp[ i - 1 ][ 0 ]初始化 dp[ 0 ][ 0 ] = -price[0] dp[0][1] = 0;如果之前就卖出了 dp[ i ][ 1 ] = dp[ i - 1 ][ 1 ]在第 i 天 买入股票 dp[ i ][ 0 ] = -price[ i ]dp[ i ][ 1 ] 我挣的钱的钱越多越好(手头钱加上卖出的)
2023-09-24 22:14:54
74
1
原创 力扣反转链表
/ 反转以第二个结点为头的子链表。if (head == NULL || head->next == NULL) // 空链或只有一个结点,直接返回头指针。//循环结束,返回prev节点即可,不返回curr节点因为while循环退出时curr已经变为空节点了。//定义前节点和当前节点。// head->next 此时指向子链表的最后一个结点。// 将之前的头结点放入子链尾。
2023-09-17 13:55:05
65
1
原创 赎金信问题
首先,我们判断ransomNote的长度是否大于magazine的长度,如果是,则无法构成,返回false。然后,我们遍历magazine,对于每个字符,,将对应的数组元素加1,表示该字符出现了一次。接下来,我们遍历ransomNote,对于每个字符,将其转换为对应的数组索引,将对应的数组元素减1,表示该字符在构建ransomNote时被使用了一次。同时,我们检查数组中对应元素的值,如果小于0,说明magazine中的字符无法满足ransomNote的要求,返回false。// 检查字符出现次数是否足够。
2023-09-17 13:50:52
64
1
原创 散列表的应用之一——缓存
如果你登录了Facebook,你看到的所有内容是为你定制的。”有鉴于此,它不让服务器去生成主页,而是将主页存储起来,并在需要时将其直接发送给用户。例如,Facebook的服务器可能搜集你朋友的最近活动,以便向你显示这些信息,这需要几秒钟的时间。另一方 Facebook的服务器必须为数以百万的用户提供服务,每个人的几秒钟累积起来就相当多了。缓存是一种常用的加速方式,所 大型网站都使用缓存,而缓存的数据则存储在散列表中!下次你侄女再问你时,你就不用再使用Google搜索,立刻就可以告诉她答案。
2023-09-10 16:42:55
160
1
原创 合并两个有序数组
首先nums1长度是m+n的,所以我们只需要从尾部进行操作就可以了的,首先设置三个指针m,n,i,m去指向nums1[m-1]的,n指向nums2[n-1],而i指向nums1[m+n-1],然后向前遍历就可以了,停止条件是m>=0以及n>=0,nums1[m]比较nums2[n],谁大就放谁的,如果小了就在nums1中交换进去。将第二个数组中的元素逐个插入第一个数组中并直接对第一个数组进行排序,这样的时间复杂度为O((m+n)!因为swap(nums1[i--], nums2[n--]);
2023-09-10 03:14:07
400
1
原创 有效的括号
如果栈不为空,则取出栈顶先前存放的左括号对应的右括号与其进行比较并判断它们是否是相同类型的括号。如果替换之后的字符串与原字符串s相同,则说明没有括号可以替换了,字符串s有效,返回true;遍历结束后,如果栈为空,则说明所有的括号都已经匹配完毕,字符串s有效,返回true;使用replace函数将字符串s中的所有‘()’替换为空字符串,将‘{}’替换为空字符串,将‘[]’替换为空字符串。如果为空,则说明没有相应的左括号与之匹配,字符串s无效,返回false。栈不为空,字符序列空了,存在未匹配的左括号;
2023-09-10 02:27:07
73
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人