LeetCode 5
232. Implement Queue using Stackspython中list是一个常用的栈,所以可以用list来模拟队列 注意pop方法可以用deque方法更加高效。 12345from collections import dequedef pop(self): res = self.queue.popleft() return res GPT版本: 1234567891011121314151617181920class MyQueue: def __init__(self): """初始化一个空队列""" self.queue = deque() def push(self, x: int) -> None: """入队,在队列尾部添加元素""" self.queue.append(x) def pop(self) -> int: ...
LeetCode 4
344. Reverse String这题自己做对了,还有更精简的方法: 使用reversed,s[:] = reversed(s) 使用切片,s[:] = s[::-1] 使用reverse(), s.reverse() 541. Reverse String II1234567891011121314151617181920212223242526def reverseStr(self, s, k): """ :type s: str :type k: int :rtype: str """ s_list = [ss for ss in s] if k >= len(s_list): s_list.reverse() res = "".join(s_list) return res k_l, k_r = 0, k...
LeetCode 3
242. Valid Anagram这题有好几种解法,首先我自己想的 12345678s_set, t_set = set(s),set(t)if len(s_set) != len(t_set): return Falsemerged_set = s_set | t_setif len(merged_set) == len(s_set) and len(merged_set) == len(t_set): return Trueelse: return False 有问题,因为set()没法判断长度是否相等,比如aabb和ab最后会返回true 最简单高效的方法是引入collections包里的Counter方法,Counter方法主要统计...
LeetCode 2
203. Remove Linked List Elements注意:链表的定义很简单,只要创建一个ListNode类并实例化就算完成了,其中每个实例代表一个节点,因此每个实例都得有value和next,分别表示该节点的值和指向下一节点的指针: 1234class ListNode(object): def __init__(self, val=0, head=None): self.val = val self.next = next 而遍历链表也不同于for循环,其主要通过头节点的指针不断寻找下一个节点,也就是current = current.next 例如创建一个链表并遍历: 12345678head = ListNode(1)head.next = ListNode(2)head.next.next = ListNode(3)current = head #从头开始遍历while current.next: print(current.val) current =...
LeetCode 1
704. Binary Search二分查找的注意点 思路:每次取list的最大最小下标,然后找到中间下标与其所对应的值,将其与目标比较大小,从而进一步缩短目标所在区间,时间复杂度logn 临界值的把握最重要 首先确定while循环的条件所在区间 如果我们假设了left <= right,那么就存在left == right这种情况,也就是target 可能位于left==right之间。 这个时候为了避免死循环,那么就需要在比完大小后right = middle-1 或者 left = middle+1,而不是直接left = middle 或right = middle 假设 nums = [2, 5],target = 5: left = 0, right = 1 middle = (0 + 1) / 2 = 0(因为 / 是浮点数除法,应该用 // 取整) nums[middle] = nums[0] = 2 < target 执行 left = middle,但 middle == left,所以 left 没有变化...
搭建 Hexo 博客并配置 Butterfly 主题
从零开始搭建 Hexo 博客,并安装Butterfly 主题。 ✨ 前置条件 安装了 Node.js(推荐 v16.x 或以上) 安装了 Git 基本的终端操作能力 1️⃣ 安装 Hexo1234567npm install -g hexo-clihexo init my-blogcd my-blognpm installhexo servercd my-blog/themesgit clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git butterfly 然后编辑根目录的 _config.yml 文件: 1theme: butterfly 123npm install hexo-renderer-pug hexo-renderer-stylus --savevi themes/butterfly/_config.ymlhexo new "Hello Hexo" 本地预览 + 生成部署12345hexo cleanhexo generatehexo...
Test the blog with hexo
Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment
《记忆碎片》:一场逆向思维的视觉实验
克里斯托弗·诺兰执导的《记忆碎片》(Memento)是一部打破传统叙事逻辑的电影杰作。它通过“倒叙+正叙”交错进行的方式,让观众仿佛置身于主人公失忆的混乱中。 本片以其极具创意的剪辑风格、哲学性极强的主题,以及不断反转的剧情节奏,被誉为心理惊悚片的经典之作。诺兰以独特的结构挑战观众对记忆与现实的信任——我们到底是在看真相,还是一段被不断重写的叙述? 🎬 推荐指数:★★★★★🎭 类型:悬疑 / 心理 / 犯罪📅 上映时间:2000年 如果你喜欢挑战自己大脑的电影,绝不能错过这部作品。





