代码随想录
文章平均质量分 93
向上爬的小小蜗牛
加油呀!
展开
-
代码随想录【二叉树篇(一)】
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。原创 2023-08-12 08:26:37 · 85 阅读 · 0 评论 -
代码随想录【栈与队列篇】
本篇主要内容如下图大纲所示:力扣题目链接使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:思路: 用两个栈来模拟队列的操作入队没啥说的就是进栈 stackIn.push(), 比如 [1,2,3]出队就是返回栈底元素 1, 此时再借助一个栈 stackOut 把 stackIn的元素存进去就是 [3,2,1], 再返回stackOut.pop()就是 1 了。队列第一原创 2023-08-08 22:18:54 · 103 阅读 · 0 评论 -
代码随想录【字符串篇】跳过 KMP 算法
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]输入:[“h”,“e”,“l”,“l”,“o”]原创 2023-07-12 09:53:16 · 90 阅读 · 0 评论 -
代码随想录【哈希表篇】
本篇主要内容如下图大纲所示:力扣题目链接给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。思路:定义一个数组,用来记录字符串 s 中各个字符出现得次数,再循环字符串 t ,减去对应得次数,最后循环数组如果有不为0得元素说明false时间复杂度O(n) 空间复杂度O(1)力扣题目链接题意:给定两个数组,编写一个函数来计算它们的交集。说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。思路:hashset去重,遍历nums1添加到set1,遍历set2判原创 2023-07-10 16:04:33 · 111 阅读 · 0 评论 -
代码随想录【链表篇】
思路:构造虚拟头节点,定义快慢指针都从头节点开始,fastIndex先走n步,然后两者同时开始走直至fast.next=null结束,此时slowIndex的下一个节点就是待删除的节点。时间复杂度: O(n),快慢指针相遇前,指针走的次数小于链表长度,快慢指针相遇后,两个index指针走的次数也小于链表长度,总体为走的次数小于 2n。得出结论:从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点。如果链表无环,则返回 null。原创 2023-07-07 10:30:59 · 43 阅读 · 0 评论 -
代码随想录【数组篇】
以 nums = [2,3,1,2,4,3] 为例,第一次 走到这[2,3,1,2]满足题意result=4,此时不断变更 i, sum也在变直到不满足条件 [3,1,2]如果x < a[n/2], 则只要在数组a的左半部分继续搜索 x, 如果x > a[n/2], 则只要在数组 a 的右半部搜索x.由于你 n/2^k 取整后 >= 1 ,即令 n/2^k = 1 ,可得 k = log2n,(是以2为底,n的对数)总共有n个元素, 渐渐跟下去就是n,n/2,n/4,…原创 2023-07-05 20:25:44 · 69 阅读 · 0 评论