摘要:
概述: 快慢指针一般都初始化指向链表的头结点 head,前进时快指针 fast 在前(一次走两步), 慢指针 slow 在后(一次走一步)。 1. 判断单链表是否有环,并找到环的入口节点。 分析:如果单链表没有环,一定是快指针先走到链表结尾停下,如果链表有环,快慢指针会 不停地走下去,这样判断是否有 阅读全文
摘要:
题目是这样:你面前有一栋从 1 到 N 共 N 层的楼,然后给你 K 个鸡蛋(K 至少为 1)。 现在确定这栋楼存在楼层 0 <= F <= N,在这层楼将鸡蛋扔下去,鸡蛋恰好没摔碎 (高于 F 的楼层都会碎,低于 F 的楼层都不会碎)。现在问你,最坏情况下,你至少 要扔几次鸡蛋,才能确定这个楼层 阅读全文
摘要:
解决两个字符串的动态规划问题,一般都是用两个指针 i,j 分别指向两个字符串的最后,然后一步步往前走, 缩小问题的规模。 1. 最长公共子序列:求两个字符串的最长公共子序列,代码如下: 1 class Solution { 2 public: 3 int longestCommonSubsequen 阅读全文
摘要:
方法一: 动态规划 时间:O(n*n) 空间 :O(n) 动态规划的核心设计思想是数学归纳法。 数学归纳法思想: 比如我们想证明一个数学结论,那么我们先假设这个结论在 k<n 时成立,然后根据这个假设, 想办法推导证明出 k=n 的时候此结论也成立。如果能够证明出来,那么就说明这个结论对于 k 等于 阅读全文
摘要:
Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. Example 1: Input: 阅读全文
摘要:
CategoryDifficultyLikesDislikes algorithms Easy (55.00%) 1235 - TagsCompanies 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你 阅读全文
摘要:
CategoryDifficultyLikesDislikes algorithms Easy (73.29%) 591 - TagsCompanies 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉 阅读全文
摘要:
CategoryDifficultyLikesDislikes algorithms Easy (65.56%) 257 - TagsCompanies 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如:给定二叉树 [3,9,20,n 阅读全文
摘要:
本题是 102 题的简单变形 方法一: 将102题的结果的偶数层节点(第2,4,6,...)vector内的元素翻转下即可;数组的翻转可以直接使用c++ stl 的std::reverse实现, 代码如下: 1 /* 2 * @Descripttion: 3 * @version: 4 * @Aut 阅读全文
摘要:
方法一: 使用队列辅助,做二叉树的层序遍历,这里由于需要将每层的节点分开,需要在节点入队列的同时,记录节点的层次, 整是套用使用队列对二叉树做层次遍历的框架。代码如下: /* * @Descripttion: * @version: * @Author: wangxf * @Date: 2020-0 阅读全文