摘要: 题目描述: 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。 这条路径可能穿过也可能不穿过根结点。 分析: 本题和 124. 二叉树中的最大路径和 是一样的思想 ,124 题是在二叉树中 求一条路径 使得这条路径上的 节点和最大。本题是在二叉树树中找一条 阅读全文
posted @ 2020-11-17 00:21 谁在写西加加 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 1. 定义状态 经典动态规划问题,定义 dp[i] : nums中以nums[i] 结尾的具有最大和的连续子数组。取dp[i] ( 0=< i < n)的 最大值即可得到最终结果。 2 阅读全文
posted @ 2020-11-17 00:08 谁在写西加加 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 翻转单链表是出现在 各大公司 的面试中频率最高的一题了!!! 有 头插法 和 递归法 两种实现方法,一次性写出 bug free 的代码不是件容易的事! 具体看下面的代码和注释 如下: 1 /** 2 * Definition for singly-linked list. 3 * struct L 阅读全文
posted @ 2020-11-14 23:21 谁在写西加加 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 写二叉树相关的算法,简单说就是,先搞清楚当前 root 节点该做什么,然后根据函数定义递归调用子节点, 递归调用会让左右孩子节点做相同的事情。 写递归算法的关键是要明确函数的「定义」是什么,然后相信这个定义,利用这个定义推导最终结果 阅读全文
posted @ 2020-11-14 16:40 谁在写西加加 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 本题是一道细节题,很烦人,但是却频繁出现在 微软等大公司的面试中。 主要考察面试者是否具有良好的代码风格和代码调试能力。这里使用了 stringstream + getline 分割字符串,使用 atoi将字符串转成整数。主要的坑也来自这两块。坑1 : atoi("1e1") 返回的结果 是1 不是 阅读全文
posted @ 2020-11-13 16:22 谁在写西加加 阅读(108) 评论(0) 推荐(0) 编辑
摘要: LeetCode 215. 数组中的第K个最大元素 描述:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个 最大的元素,而不是第 k 个不同的元素。 方法 0 : 直接 std::sort 排序 时间O(n*logn) 空间O(1) 求 数组中的第K个最大元素 直 阅读全文
posted @ 2020-11-12 18:08 谁在写西加加 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 搬运 博主 lambdadong 的博客: labuladong 的算法小抄 回溯算法的框架: 1 result = [] 2 def backtrack(路径, 选择列表): 3 if 满足结束条件: 4 result.add(路径) 5 return 6 7 # 做选择 8 将 选择i 从选择列 阅读全文
posted @ 2020-11-11 20:02 谁在写西加加 阅读(78) 评论(0) 推荐(0) 编辑
摘要: LeetCode 「打家劫舍」系列问题共有三道: 198.打家劫舍 213.打家劫舍II 337.打家劫舍III House Robber I int rob(vector<int>& nums); 建模:给定数组 nums中都是正整数,nums中相邻的数不能同时取,制定一种取数策略, 使得取到的n 阅读全文
posted @ 2020-11-09 19:17 谁在写西加加 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 《滑动窗口防滑记》 labuladong 滑动窗口老猛男,子串问题全靠他。 左右指针滑窗口,一前一后齐头进。 上面的打油诗节选自一个我很喜欢的博主东哥,生动凝练地概括了滑动窗口算法的精髓, 本文介绍的很棒的滑动窗口框架就是来自这位老哥的一篇公众号文章。 推荐给大家:https://mp.weixin 阅读全文
posted @ 2020-11-07 00:05 谁在写西加加 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 一、寻找排序数组中的一个数(基本的二分搜索),如果存在,返回其索引,否则返回 -1。 1 int binary_search(vector<int>& nums, int target) 2 { 3 if(nums.empty()) return -1; 4 int low = 0; 5 int h 阅读全文
posted @ 2020-11-05 19:07 谁在写西加加 阅读(115) 评论(0) 推荐(0) 编辑