- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 代码随想录Day15|226.翻转字符串,101对称字符串
102.二叉树的层序遍历利用类似图论中的广度优先遍历,我们借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。Java代码。
2023-04-10 19:34:55
213
原创 代码随想录Day13|
定义一个单调队列来保存窗口最大值,设置该队列的push方法为,当push的元素大于单调队列中队首元素,则将队列中的其他元素全部弹出,然后将该元素入队,pop方法则该写为检查要pop的元素是否为元素最大值,如果是的话则pop否则不做处理。采用优先队列的结构来进行保存每个元素的出现顺序,然后再返回优先队列(大堆)的前k个元素。空间复杂度: O(n),时间复杂度 O(n)空间复杂度: ,时间复杂度。
2023-03-27 20:39:50
250
原创 代码随想录Day11 |20. 有效的括号
使用栈来保存所有左括号,然后遇到右括号之后就去栈里面检查栈顶的是括号是否和自己匹配,如果不匹配则返回False。还是使用栈,遇到数字则保存,如果遇到符号然后之后就取栈顶的两个元素,需要注意的一个点是除法要注意取整的问题。还是使用栈,每次先检查是否和栈顶数字是否相同,相同就把栈顶元素出栈。空间复杂度: O(n) ,时间复杂度 O(n)空间复杂度: O(n) ,时间复杂度 O(n)空间复杂度: ,时间复杂度。
2023-03-26 21:46:51
206
原创 代码随想录打卡Day8|344. 反转字符串
翻转字符串中的单词,我们可以先选择去除多余的空格,然后将整个字符串翻转一下,比如原来的字符串内容为 hello world 反转后 则会成为 dlrow ollew ,这个时候我们只要把每个词再翻转一次就可以达到我们想要的效果 world hello。思路和普通的翻转一样,不过利用Python强大的切片能力可以很简单的完成整个任务,但是一定要读好题意,是翻转2k的前k个元素。空间复杂度: O(1) ,时间复杂度 O(n)空间复杂度:O(n) ,时间复杂度 O(n)
2023-03-22 22:49:48
160
原创 代码随想录Day7|454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和
先分析题目,要求从四个数组中取出来四个数,然后这个四个数的和为零,这里主意,他要求的是求多少个数组,那我们其实就不用记录,i、j,k,l的值,只需要用哈希表记录数组里面的值就行不用注意下标,我们通过遍历, 来讲A、B两个数组的值里面任意组合存入数组,然后同样方法去遍历。我们采用双指针的方式来解决这个问题,同样需要注意,这个三元组里面存放的是值而非下表,所以我们可以先讲nums进行排序,然后使用双指针的思路解决问题。空间复杂度: O(n2) ,时间复杂度 O(n2)
2023-03-22 15:40:20
197
原创 代码随想录Day6| 242 349 202
题目有俩出口,一个是发现他无限循环了就返回false, 如果发现中间结果为1了那就返回true,那么我们首先是要构建一个求和的函数,然后在设置一个set,来保存中间产生的结果,如果发现某次求出的和在set里那就return false。给了两个字符串,要求s和t中每个字符出现的次数都相同,那我们可以创建一个哈希表,然后记录用字符作key,出现字数做value。要返回交集,而且不考虑结果的顺序,那说明我可以把nums1和nums2转为set之后再来判断交集。空间复杂度: ,时间复杂度。
2023-03-20 22:30:21
109
原创 代码随想录Day4|LeetCode 24
使用虚拟头节点,然后分析题目可知,我们要两两分组给他们交换一下,我们不如分解一下问题,如何在一个链表中互换一对节点,想要互换一对节点,我们最好的方法是获得他们前面的那个结点,比如现在有A、B、C三个节点,A->B->C->D 我们互换B、C就需要先用pre保存一下B,然后让B->D, 然后C->B,接着,A->C 如果想要重复这个过程我们只需要让cur指向C,接下来就可以继续这样的操作。空间复杂度: O(n) ,时间复杂度 O(n)空间复杂度: ,时间复杂度。
2023-03-19 00:10:25
164
原创 代码随想录Day3|203.移除链表元素
最直观的思路还是用线性表,然后深入一些可以使用递归递归的思路有点难得,其关键在于反向工作。假设链表的其余部分已经被反转,现在应该如何反转它前面的部分?采用最简单的方式,使用一个线性表来存储链表,以此来移除链表元素。模拟题,重要在于要考虑那几个根据索引操作的方法里面要考虑索引无效的情况。空间复杂度: O(n) ,时间复杂度 O(n)空间复杂度: ,时间复杂度。空间复杂度: ,时间复杂度。
2023-03-18 00:10:22
57
原创 代码随想录第二天|力扣977.有序数组的平方209.长度最小的子数组 59.螺旋矩阵II
那么我们可以考虑这个数组里面有负数,所以中间的平方不会比两边的都要大,所以我们设置两个左右指针,放在数组的两端向中间移动,然后每次比较两浮标指向的数的平法大小,同时我们已经知道数组的大小所以倒着存即可。采用滑动窗口的思路,因为他要求的返回的是子数组,所以我们定义两个变量来保存这个滑动窗口的左端和右端,这里的难点在于中间不变量,要先确定我们这个right到底指向的是什么,是下一个要放入的子数组的位置,换是子数组中最后一位的位置。我这里right定义的为要放入子数组的位置是要放但还不在子数组当中。
2023-03-16 23:44:15
434
原创 代码随想录第一天打卡|力扣 704. 二分查找,27. 移除元素
采用快慢双指针的方法,用快指针去寻找非val元素,找到之后填充到慢指针所指位置,然后慢指针再向后移动,慢指针指向的拥有是即将要更新的位置,但是这个位置的值是不是val是不确定的,如果是val,就算这时候是数组的最后一位,那么他最后的slow+=1也正好是最终的答案。空间复杂度: ,时间复杂度。题目链接ss。
2023-03-15 23:04:57
686
原创 Ubuntu系统显卡驱动缺失,附加驱动页面驱动选项灰色不可选
附加驱动里面的显卡驱动选项都是灰色不可选,自己下载驱动也是无法使用,同时显示分辨率只有一种低分辨率
2022-03-06 18:04:17
7446
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人