
LeetCode
狂徒张三
997的程序员
展开
-
LeetCode刷题实况(三):双指针算法
双指针算法在做题时经常用到:对于线性的数据结构可使用双指针算法,主要形式为从左向右和两面向中间。一、从两面向中间:适用于寻秩访问,确定开头秩与结尾秩,根据一定的条件,移动两个指针。多用于向量数据结构。双向链表知道头尾节点也可以。这里拿《剑指offer》中的“调整数组顺序使奇数排在偶数前”为例题目链接:调整数组顺序使奇数排在偶数前代码如下:class Solution { public int[] exchange(int[] nums) { if(nums.length &原创 2020-05-13 16:17:21 · 198 阅读 · 0 评论 -
LeetCode刷题实况(二):栈的应用———有效括号嵌套深度(LeetCode1111题)
四月的第一天,乐扣就搞了这么一道阅读理解题。相信做过这道题的小伙伴看到题目就裂开了,本篇博客将为大家解析该题,以及学到的东西。题目链接:1111题有效括号的嵌套深度有效括号字符串 仅由 "(" 和 ")" 构成,并符合下述几个条件之一:空字符串连接,可以记作 AB(A 与 B 连接),其中 A 和 B 都是有效括号字符串嵌套,可以记作 (A),其中 A 是有效括号字符串类似地,我们可...原创 2020-04-01 08:09:16 · 250 阅读 · 0 评论 -
LeetCode刷题实况(一)快速选择算法-------最小的K个数/最小的第K个数(剑指offer40题)
题目链接:查找最小的K个数本题,一般人的第一思路是用排序,然后取前k个,那么这个时间复杂度,就取决于排序算法的时间复杂度。最小的O(nlogn)。虽然这个很好想,但在面试时只能做最初的方案(面试时很推荐最开始用这个算法,后面再改进,可以让面试官看到你思考的过程)。如果就是排序,没有后续的优化,那这道题答的就太失败了接下来咱们就介绍两种优化的方式,具体用哪一个,看面试官怎么说第一种:快速选择...原创 2020-03-23 22:23:59 · 517 阅读 · 5 评论