
刷题经验
overflow_1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LEETCODE解题笔记 —— 29.两数相除
不得使用乘除和mod运算。算出来整数,小数位丢弃 这个第一想法就是不让用乘除就用减法嘛,但是如果被除数过大,除数国小,这样效率就会非常慢。 要怎么做比较有效率呢? 假如我给一个被除数和除数 25 和 7,如何算出 3为商呢? 可以借助指数扩大的方法 将变量ans初始化为 1 每次令 除数 7 乘以 2 这时ans也乘以 2 然后用除数去和被除数对比,如果除数等于被除数,那么这时的ans就是答案,注意,如果除数*2就直接大于被除数了,那么我们就让被除数减去这时的除数,同时ans我们也记录下来原创 2021-02-09 12:45:39 · 214 阅读 · 0 评论 -
LEETCODE解题笔记 —— 24.两两交换链表中的节点 & 25. K 个一组翻转链表
常作题,常更新。 这类题就是和反转链表有关,有两种思路,一种是维护几个指针顺着链表一个一个做处理。 这样效率比较高,但是确实比较繁琐。 另一个是用递归的思想来翻转链表,一层层递归下去,在函数出栈的时候让下一个节点的指针指向自己,因为使用了函数栈来记录每个节点的指针,所以代码实际上更简单了。 下面要要记录的是翻转链表的一个变体,即在链表中部分翻转链表。 下面是 25题的解,25题其实是24题的通用形式。 class Solution { public: int coun...原创 2021-02-09 11:33:06 · 174 阅读 · 0 评论 -
LEETCODE解法笔记 —— 15 三数之和 & 18 四数之和
这个可以扩展到n数之和 时间复杂度如果暴力匹配的话可以达到O(N^n) 基本上首先需要sort给的数据,这样复杂度就会变成 O(N^(n-1)) ,快速排序的复杂度 O(nlogn)在大O表示法中被省去 如果sort之后,整个数据有序了,我们就可以指定前 N-2个,然后通过左右夹逼的方式,找出剩下的2个数,如果时暴力查找的话复杂度时O(n^2),但是现在是O(n) 这个实现起来其实很简单,但是一个问题是去重,给出的N元组合可能重复。 可以建一个set来暴力去重,但是效率比较低。可以采取和前驱.原创 2021-02-06 11:06:03 · 174 阅读 · 0 评论 -
LEETCODE解法笔记——7.整数反转 & 9.回文数
这两个一起记录是因为有共性,涉及将一个数字反转, 这个操作可以通过转换成字符串来处理,但是这样效率比较低也不是题目本意。 题目本意是如何处理数字的溢出。 32位整型的范围为 -2^31 ~ 2^31-1 超出这个范围会溢出。 先看7的代码: class Solution { public: int reverse(int x) { int rev = 0; while (x != 0) { int pop = x % 10;原创 2021-02-06 11:04:19 · 114 阅读 · 0 评论