算法题分类规划

哈希表 or 切片操作 or stack

1. 两数之和 (attention break)

https://leetcode-cn.com/problems/two-sum/

需要理解把复杂问题简单化,也就是切片处理.

既然原数据集较大,我们可以分开处理,利用list特点,完美将i,j剥离开

或许还可以考虑使用双哈来空间换时间


2. 有效的括号(stack)(pop in judge line)

https://leetcode-cn.com/problems/valid-parentheses/

利用栈的性质

判断的时候要趁机pop

判断empty来决定结果


3. LRU(其实就一概念题)(get操作要记得更新)

https://leetcode-cn.com/problems/lru-cache/

双链表+哈希表


4. 栈实现队列 (基操)

https://leetcode-cn.com/problems/implement-queue-using-stacks/


5. 行星碰撞 (注意正负)

https://leetcode-cn.com/problems/asteroid-collision/


6. 困难计算器(流畅写下来就对栈挺清楚的了)(sign,num,res)

https://leetcode-cn.com/problems/basic-calculator/

公式 res += sign*num 出现了三次

要明白为什么要用栈存储上一组值

c.isdigit()判定数字

同时储存res.append([sign, res])


7. 字符串解码

https://leetcode-cn.com/problems/decode-string/

和困难计算器一模一样


8. 删除字符串中的所有相邻重复项

https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/

用栈啊兄弟!!!!!!!!


9. 砖墙

https://leetcode-cn.com/problems/brick-wall/

要利用好字典

没有一行新的砖重叠,那就加一

记住不能取最后一块砖哦


10. 颜色排序

https://leetcode-cn.com/problems/sort-colors/

深拷贝

妙用列表,有点类似于字典


滑动窗口为了你

1. 和为s的连续正数序列

https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/

while的=,空间control

利用target//2来减少复杂度(二分就是那么好用)

i,j 哪个是终点值呢?

换个角度看世界之降低复杂度

1. 最长回文子串(中心扩展)

https://leetcode-cn.com/problems/longest-palindromic-substring/

封装好三个函数

helper函数负责判定以及更新

奇偶两次调用,每个中心不要忘掉.(2N-1)

厉害的双指针

1. 删除链表的倒数第N个节点

https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/

先选定指针之间的长度(快指针负责先到位)

长度遍历时一定要考虑到如果删除的是头节点怎么办,如果是头节点直接返还head.next就好了

选定之后两个指针齐头并进

最后通过double next跳跃即可


2. 反转链表 (双指针赛高,注意dump)

https://leetcode-cn.com/problems/reverse-linked-list/

非常基础,需要注意的就是将cur.next事先封存即可


3. 字符串相加 

两数之和与这道题一样,注意中间的int


4. 链表的中间节点(注意一下边界左右,cue.next and cue.next.next)

https://leetcode-cn.com/problems/middle-of-the-linked-list/

常规操作

需要考虑是左边界还是右边界


5. 两数相加

https://leetcode-cn.com/problems/add-two-numbers/

注意初始结点和操作结点

记住r.next


6. 字符串压缩 (字符串的问题优先考虑双指针)(注意str(i-j))

https://leetcode-cn.com/problems/compress-string-lcci/

可以注意仅仅赋值一个变量i即可,在一层循环中使用j=i赋值

利用i=j来更新慢指针位置


7. 字符串相乘 (倒着来,两个标志)

https://leetcode-cn.com/problems/multiply-strings/


8. 删除(跳过)链表的结点

https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/

和第一题道理一样,需要注意的是两个指针并排向前走,当面对VAL=TARGET的时候,后指针完成跳跃即可

链表题一定要判断头节点


9. 接雨水(要理解)

https://leetcode-cn.com/problems/trapping-rain-water/


10. 反转单词(纯手写)(双指针集大成者)

https://leetcode-cn.com/problems/reverse-words-in-a-string/


递归大法好

1. 合并K个排序链表(结合链表融合以及归并思想)

https://leetcode-cn.com/problems/merge-k-sorted-lists/


2. 链表排序(拆开再排,从底向上)

https://leetcode-cn.com/problems/sort-list/


复杂度太高?我们来二分

1. Pow(x, n) (注意奇偶)

https://leetcode-cn.com/problems/powx-n/

理解递归精髓

把大问题切分,想象触碰到叶子节点时的感觉

递归到一个值再进行处理


2. 排序数组查找次数(双二分)

https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof/

双二分,左右边界,第一分完讨论情况

引出一个新问题,二分的右起点到底是从哪里开始的?


3. x的平方根 (x//2)

https://leetcode-cn.com/problems/sqrtx/

l is bigger than r, always

right place

while


4. 缺失的数字(左右边界很好诠释)

你真的能理解为什么要分左右边界吗?

问问自己

你能吗?

https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof/submissions/


DP(问题太难怎么办?想想怎么拆了他)

1. 最大子序和

 https://leetcode-cn.com/problems/maximum-subarray/

2. 编辑距离(好好想一想递归的精髓)

https://leetcode-cn.com/problems/edit-distance/

3. 股票家族

https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/

4. LCS

https://leetcode-cn.com/problems/longest-common-subsequence/

5. 剪绳子(状态!状态!)

https://leetcode-cn.com/problems/jian-sheng-zi-lcof/


贪心

1. 分糖果

前后两次,以S[I]为中心

https://leetcode-cn.com/problems/candy/

2. 连续数组的最大子序和

https://leetcode-cn.com/problems/maximum-subarray/

每一步都要贪心呢


排序

1. 合并区间(排序之后慢慢来嘛)

https://leetcode-cn.com/problems/merge-intervals/

2. 数组中的第K大元素 (小顶堆安排)

https://leetcode-cn.com/problems/kth-largest-element-in-an-array/


离一铭哥家很远的二叉森林

1. 平衡二叉树(前面的已经比较完了,所以后面的要取max)

https://leetcode-cn.com/problems/balanced-binary-tree/

一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1

注意每次返回小子树的高度

利用这个作为判定条件,设置-1为FLAG


2. 二叉树的最大深度

https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/

基础中的基础,碰触到叶子节点记住加一即可


3. 二叉树的直径

https://leetcode-cn.com/problems/diameter-of-binary-tree/

相当于是最大深度的变形,只需要保留一个最大结果。


4. 重建二叉树(都是递归,概念题,自己要读出来)

https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/

三加一,一不加


5. 反转二叉树 (递归~)

https://leetcode-cn.com/problems/invert-binary-tree/

没什么好说的,用语法糖直接反转就好了


6. 验证二叉搜索树

https://leetcode-cn.com/problems/validate-binary-search-tree/

中序遍历的顺序加上set去重


7. 树的子结构

https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/

注意逻辑,从例子入手,解释给自己听。

递归就是程序自动化。注意B要从头比。


奇技淫巧

1. 只出现一次的数字(位运算)

https://leetcode-cn.com/problems/single-number/

2. 跳跃游戏(你到底能跳多远?)

https://leetcode-cn.com/problems/jump-game/


DFS

1. 小岛问题(经典就完事儿了)

https://leetcode-cn.com/problems/number-of-islands/

2. 矩阵中的路径(边界条件注意一下)

https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof/

3. 单词搜索

https://leetcode-cn.com/problems/word-search/

4. 机器人的运动范围

https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343