摘要: [TOC] 题目描述: 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 是 ,则在该链表中没有环。 示例 1: 示例 2: 示例 3: 进阶: + 你能用 O(1)(即,常量)内存解决此问题吗? 解法: 阅读全文
posted @ 2019-03-19 17:54 zhanzq1 阅读(126) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个 非空 整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: + 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 示例 2: 解法: 阅读全文
posted @ 2019-03-19 17:47 zhanzq1 阅读(107) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明: 本题中,我们将空字符串定义为有效的回文串。 示例 1: 示例 2: 解法: cpp class Solution { public: bool isPalindrome(string s 阅读全文
posted @ 2019-03-19 17:43 zhanzq1 阅读(79) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 示例 2: 示例 3: 解法: 阅读全文
posted @ 2019-03-19 17:33 zhanzq1 阅读(83) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 示例 2: 解法: 阅读全文
posted @ 2019-03-19 16:00 zhanzq1 阅读(87) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 进阶: + 你可以优化你的算法到 O(k) 空间复杂度吗? 解法: 阅读全文
posted @ 2019-03-19 15:54 zhanzq1 阅读(101) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个非负整数 numRows ,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 解法: class Solution { public: vector generate(int numRows) { vector res; 阅读全文
posted @ 2019-03-19 15:42 zhanzq1 阅读(123) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 , 返回 , 因为存在目标和为 22 的根节点到叶子节点的路径 。 解法: 阅读全文
posted @ 2019-03-19 15:19 zhanzq1 阅读(111) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 , 返回它的最小深度 2. 解法: 阅读全文
posted @ 2019-03-19 13:56 zhanzq1 阅读(121) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 返回 。 示例 2: 给定二叉树 返回 。 解法: 阅读全文
posted @ 2019-03-19 11:24 zhanzq1 阅读(76) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: , 一个可能的答案是: ,它可以表示下面这个高度平衡二叉搜索树: 解法: 阅读全文
posted @ 2019-03-19 10:53 zhanzq1 阅读(119) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例: 给定二叉树 , 返回其自底向上的层次遍历为: 解法: 阅读全文
posted @ 2019-03-19 10:44 zhanzq1 阅读(105) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 , 返回它的最大深度 3 。 解法: 阅读全文
posted @ 2019-03-19 10:37 zhanzq1 阅读(95) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 是对称的。 但是下面这个 则不是镜像对称的: 说明: + 如果你可以运用递归和迭代两种方法解决这个问题,会很加分。 解法: 阅读全文
posted @ 2019-03-19 10:27 zhanzq1 阅读(93) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 示例 2: 示例 3: 解法: 阅读全文
posted @ 2019-03-19 10:17 zhanzq1 阅读(101) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: + 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 + 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + 阅读全文
posted @ 2019-03-19 10:13 zhanzq1 阅读(112) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 示例 2: 解法: / Definition for singly linked list. struct ListNode { int val; ListNode next; ListNode(in 阅读全文
posted @ 2019-03-19 10:05 zhanzq1 阅读(91) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 示例 2: 解法: class Solution { public: int climbStairs(int n 阅读全文
posted @ 2019-03-19 00:22 zhanzq1 阅读(148) 评论(0) 推荐(0)
摘要: [TOC] 题目描述: 实现 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 解法: cla 阅读全文
posted @ 2019-03-19 00:13 zhanzq1 阅读(132) 评论(0) 推荐(0)