学java有什么网站可以刷题?

想刷题检验一下自学成果
关注者
38
被浏览
128,638
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

在大学刷了几千道题的 ACM 学长来说下吧。

题主不是搞竞赛,只是想检验一下自学成果的话,那建议刷 LeetCode 即可。

一方面可以检验自己的成色,另一方面面试找工作的题很多都是出自 LeetCode。

LeetCode 上面有 1k+ 的题目,没有必要都刷完

每个专题选一些有代表性的题目去刷,去理解去吃透。

其实刷题这件事,就是按照专题来刷就好,数据结构与算法的重要且常考的内容就那么多:

数据结构就是:数组、链表、栈、队列、散列表、堆、树、图等。

算法就是:回溯算法、分治算法、枚举算法、贪心算法、动态规划、查找、匹配、排序等。

针对 LeetCode,题的解法有很多,我们往往追求的是最优解,这里有一份清华学长整理的 LeetCode 最优解,强烈推荐:

关于 LeetCode 的刷题顺序,我做了整理,大家可以跟着走。

这份清单我会一直更新,同样也会一步步的把每个知识点的入门讲解每道题的题解用“图解”的方式分享给大家。

站在初学者的角度,用最直白的方式和最易懂的代码,最大可能摒除不同编程语言的带来的干扰,理论 + 实战,带你彻底搞定数据结构与算法。

数据结构

【数组】

精讲:

LeetCode1 两数之和

LeetCode4 寻找两个正序数组地中位数

LeetCode15 三数之和

LeetCode75 颜色分类

LeetCode76 最小覆盖子串

【链表】

精讲:

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

LeetCode24 交换链表:交换吧,链表!

LeetCode25 K 个一组翻转链表

LeetCode141 环形链表:链表,你有环嘛?

LeetCode142 环形链表Ⅱ:有环链表,你的入口在哪?

LeetCode160 相交链表:对不起,相交链表,我做的有点不浪漫。

LeetCode206 反转链表:反转吧,链表!

LeetCode707 设计链表:稳了,一题学会链表的 5 种操作!

栈和队列

精讲:

LeetCode20 有效的括号:栈,你告诉我这个括号配不配!

LeetCode150 逆波兰表达式求值:栈,求求这个逆波兰表达式的值!

LeetCode225 用队列实现栈:咋又要用队列实现栈了嘛?!

LeetCode232 用栈实现队列:用栈实现队列怎么样?

LeetCode239 滑动窗口最大值:队列,帮我搞一下这个滑动窗口最大值。

LeetCode703 数据流中的第 k 大元素

LeetCode1047 删除字符串中的所有相邻重复项:栈,你给我玩这个字符消消乐!

字符串

精讲:

剑指 offer05 替换空格:字符串,把这个碍眼的空格给我换掉!

剑指offer58-Ⅱ 左旋转字符串:

LeetCode151 翻转字符串里的单词:

LeetCode344 反转字符串:反转字符串不是关键,重要的是我想说...

LeetCode541 反转字符串Ⅱ:这次反转的字符串,不简单。

哈希表

LeetCode1 两数之和

LeetCode15 三数之和

LeetCode18 四数之和

LeetCode49 字母异位词分组

LeetCode242 有效的字母异位词

二叉树

LeetCode 94 二叉树的中序遍历

LeetCode101 对称二叉树

LeetCode102 二叉树的层序遍历

LeetCode 104 二叉树的最大深度

LeetCode 105 从前序与中序遍历序列构造二叉树

LeetCode 114. 二叉树展开为链表

LeetCode236 二叉树的最近公共祖先

LeetCode 543 二叉树的直径

二叉搜索树

LeetCode96 不同的二叉搜索树

LeetCode98 验证二叉搜索树

LeetCode235 二叉搜索树的最近公共祖先

算法

递归 & 分治 & 回溯

LeetCode 17 电话号码的字母组合

LeetCode 22 括号生成

LeetCode 39 组合总和

LeetCode 46 全排列

LeetCode 78 子集

LeetCode 79 单词搜索

LeetCode 226 翻转二叉树

贪心算法

LeetCode 11. 盛最多水的容器

LeetCode 55. 跳跃游戏

LeetCode 122. 买卖股票的最佳时机 II

LeetCode 309. 最佳买卖股票时机含冷冻期

LeetCode 406. 根据身高重建队列

LeetCode 714. 买卖股票的最佳时机含手续费

深度优先 & 广度优先

LeetCode22 括号生成

LeetCode36 有效的数独

LeetCode37 解数独

LeetCode51 N皇后

LeetCode52 N皇后Ⅱ

LeetCode102 二叉树的层次遍历

LeetCode104 二叉树的最大深度

LeetCode 111 二叉树的最小深度

二分查找

LeetCode34 在排序数组中查找元素的第一个和最后一个位置

LeetCode69 实现 int sqrt(int x) 函数

字典树

LeetCode79 单词搜索

LeetCode208 实现 Trie(前缀树)

LeetCode212 单词搜索Ⅱ

位运算

LeetCode52 N皇后Ⅱ

LeetCode191 位1的个数

LeetCode231 2 的幂

LeetCode338 比特位计数

动态规划

LeetCode70 爬楼梯

LeetCode72 编辑距离

LeetCode120 三角形最小路径和

LeetCode121 买卖股票的最佳时机

LeetCode122 买卖股票的最佳时机Ⅱ

LeetCode123 买卖股票的最佳时机Ⅲ

LeetCode152 乘积最大子序列

LeetCode188 买卖股票的最佳时机 Ⅳ

LeetCode300 最长上升子序列

LeetCode309 买卖股票的最佳时机含冷冻期

LeetCode322 零钱兑换

LeetCode714 买卖股票的最佳时机含手续费

并查集

LeetCode200 岛屿的个数

LeetCode547 省份数量

不断完善ing,还是那句话,会慢慢的把图解 LeetCode 的题解都更新上来,这是个长期的过程。

针对 LeetCode,题的解法有很多,我们往往追求的是最优解,这里有一份清华学长整理的 LeetCode 最优解,强烈推荐:

我在大学的时候参加 ACM,拿过金银铜奖,刷题贯穿了我的整个大学生涯,总结了一些刷题的经验,感兴趣的可以看下。

如果题主想要多了解一下别的刷题网站,我这里也有,可以看下下面的回答:

希望数据结构与算法的学习不会成为你成功路上的绊脚石。