聊聊算法
文章平均质量分 69
聊聊算法系列
小诚信驿站
公众号《小诚信驿站》,网名:小诚信驿站,小七,晓成。
工作经历:创业公司、京东、腾讯、目前在滴滴做一线研发。
业务经验:互联网保险、第三方支付、大促营销提报和效果分析、电商商业化、客服策略模型工程。
活动区域:CSDN-小诚信驿站,腾讯云-小诚信驿站,InfoQ-小诚信驿站,GitHub-小诚信驿站,公众号-小诚信驿站。想要找到我的话,小诚信驿站或者wolf_love666一般就可以找到啦。个人微信:lxc354555
展开
-
算法攻关 - 重建二叉树 (O(n))_0105
文章目录一、题目描述二、思路三、代码实现四、小结一、题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7 限制:0 <= 节点个数 <= 5000来源:原创 2021-09-13 14:58:23 · 464 阅读 · 0 评论 -
算法攻关 - 二叉树最大深度 (O(n))_0104
文章目录一、题目描述二、思考三、代码实现四、小结一、题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-dep原创 2021-09-13 14:48:41 · 355 阅读 · 0 评论 -
算法攻关 - 验证回文串 (O(n))_0125
一、题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-palindrome著作权归领扣网络所有。商业转载请联系官原创 2021-09-13 14:41:06 · 216 阅读 · 0 评论 -
算法攻关 - 链表中倒数第K个节点(O(n))_22
文章目录一、题目描述二、思考三、代码实现四、小结一、题目描述输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.来源:力扣(LeetCode)链接:https://原创 2021-09-13 14:25:39 · 285 阅读 · 0 评论 -
算法攻关 - 二叉树的最近公共祖先 (O(n))_236
文章目录一、题目描述二、思路三、代码实现四、小结一、题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。原创 2021-09-13 14:20:43 · 308 阅读 · 0 评论 -
算法攻关 - 最短无序连续子数组 (O(n))_581
一、题目描述给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1:输入:nums = [2,6,4,8,10,9,15]输出:5解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。示例 2:输入:nums = [1,2,3,4]输出:0示例 3:输入:nums = [1]原创 2021-08-19 15:14:03 · 206 阅读 · 0 评论 -
算法攻关 - 长度最小的子数组 (O(n))_209
一、题目描述给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums = [1,原创 2021-08-19 15:09:41 · 210 阅读 · 0 评论 -
算法攻关 - 最小覆盖子串 (O(n))
一、题目描述给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a"输出:"a"提示:1 <= s.length, t.length <= 105原创 2021-08-19 15:03:52 · 472 阅读 · 1 评论 -
聊聊算法·算法攻关-指导篇
文章目录一、理论1.1、切碎知识点1.2、刻意练习1.3、反馈二、准备2.1、切碎知识点2.2、算法刷题步骤2.3、数据结构初识2.4、数据结构复杂度分析一、理论如果想要精通一个领域,需要三个步骤切碎知识点刻意练习反馈1.1、切碎知识点对于整个结构的知识,往往是高内聚的,封闭原则非常好,那么你如何能够从很简单的东西,进行掌握内部原理或者深入理解以后提炼出自己的知识?这里需要做的就是切碎知识点,比如我们常听到的点动成线,线动成面,面动成体。那么我们想要了解这个体,则我们需要明确他有几个面,我们想原创 2021-08-19 14:52:07 · 231 阅读 · 0 评论