
leetcode
liuyong9975
AI+新药研发
展开
-
LeetCode 94 —— 二叉树的中序遍历
这道题的核心并不是让你去用递归实现二叉树的中序遍历,而是考察使用多种遍历的方法去实现,包括使用栈遍历,“颜色法”,莫里斯遍历等。原创 2020-07-17 08:45:04 · 204 阅读 · 0 评论 -
剑指 Offer 33. 二叉搜索树的后序遍历序列
这道题其实就是给你一个序列让你判断一下可不可能是一棵二叉搜索树的后序遍历的序列。原创 2020-07-05 19:19:41 · 215 阅读 · 0 评论 -
剑指 Offer 56 - I. 数组中数字出现的次数
这道题的题面很简单,就是有一个数组,这个数组里面有两个数出现了一次,其余所有的数都出现了两次,找出出现一次的两个数(令两个出现一次的数分别为a和b)。其实之前一个版本是,所有数都出现了两次,只有一个数出现了一次,找到那个出现一次的数,这个比较明了,直接把所有数异或一下,就能得出最后的结果。但是现在这个题是有两个出现一次的数,所以直接进行异或操作后得到的结果是 a & b,官方给出的题解就很妙,意思就是把所有的数分成两组,确保a和b在不同的组里,同时相同数一定在同一组里。那么现在问题来了,怎么去分转载 2020-06-25 22:44:23 · 175 阅读 · 0 评论 -
LeetCode 454 —— 4Sum II
这个题比较朴实无华,题目如下:Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero.To make problem a bit easier, all A, B, C, D ...原创 2020-03-17 08:35:45 · 108 阅读 · 0 评论 -
LeetCode 215 —— Kth Largest Element in an Array
这道题也没有很多特别的地方,就是去找数组中第k大的数。最简单的就是直接去给数组排个序然后找到倒数第k个数字,这样虽然简单粗暴,但是当数组很大的时候,这样做就很浪费了,所以肯定要稍微优化一下。这里使用的算法就是quickSelect,借用快排quickSort的思想,每次都找一个pivot元素,然后将比pivot小的数都放到pivot左边,大的都放到右边。放完之后看看比pivot大的数有几个,并且...原创 2020-03-17 08:03:20 · 123 阅读 · 0 评论 -
LeetCode108 —— Convert Sorted Array to Binary Search Tree
这道题的意思是给你一个排好序的数组,如何建立一棵平衡二叉查找树。一开始还是不知道怎么去搞的,但是想了想这是道简单题,那应该不会很复杂,因为数组是排好序的,所以肯定有什么小trick。于是我就直接打开了讨论区去看(真的想不到什么简单的方法去做),就发现做法还是蛮简洁的,既然是排序后的数组,且左子树和右子树相差不超过1,那么root肯定就是数组的中位数,然后再递归一下就好了。代码如下:class ...原创 2020-02-28 09:15:15 · 245 阅读 · 0 评论 -
LeetCode237—— Delete Node in a Linked List
LeetCode237—— Delete Node in a Linked List这是一道很简单的题,也就是从链表中删除某个特定节点。但是有趣的是,题目只给了要删除节点的指针,却没有给出head指针,因此最开始以为是题目出错了,打开讨论区也发现top discussion也有在骂这个题目stupid,但是后来我突然想起了很久以前看到过的一个骚操作(可能就是从这道题出来的),就是不用知道当前节点...原创 2020-02-26 08:47:12 · 135 阅读 · 0 评论 -
LeetCode206——Reverse Linked List
LeetCode206 —— Reverse Linked List今天开始正式记录一下刷leetcode的题,当然是从easy开始慢慢刷,先做一些基础的字符串和链表什么的简单题去熟悉一下,然后慢慢再往后面做。这道题为啥要记录一下呢,虽然这是一道简单题,但是链表的题还是很生疏,脑子也不怎么转,所以就记录一下自己最初的解法和正常的较好的解法。虽然知道可以一个循环直接完事,但是由于现在还是比较生疏...原创 2020-02-25 22:27:46 · 283 阅读 · 0 评论