7_反转整数

7_反转整数 [TOC] 描述 给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 示例 2: 示例 3: 注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 $[ 2^{31},,2^{31} 1]$。根据这个假设,如果反转后的整数溢出,则返回 0。 方法一 思路 ... »

350_两个数组的交集Ⅱ

350_两个数组的交集Ⅱ [TOC] 描述 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 示例 2: 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的顺序。 进阶: 如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 ... »

94_二叉树的中序遍历

94_二叉树的中序遍历 @[toc] 描述 给定一个二叉树,返回它的 中序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 方法一:递归 Java 代码 复杂度分析: 时间复杂度:$O(n)$,其中,$n​$ 为二叉树节点的数目 空间复杂度:平均为 $O(log(n))$,最坏的 ... »

144_二叉树的前序遍历

144_二叉树的前序遍历 [TOC] 描述 给定一个二叉树,返回它的 前序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 方法一:递归 Java 代码 复杂度分析: 时间复杂度:$O(n)$,其中,$n​$ 为二叉树节点的数目 空间复杂度:$O(n)$ 方法二:非递归(使用栈) ... »

2_两数相加

2_两数相加 [TOC] 描述 给定两个 非空 链表来表示两个非负整数。位数按照 逆序 方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 方法一:小学数学 思路 按照小学数学中求两数之和的做法,从最低位(链表表头) ... »

530_二分搜索树的最小绝对值差

530_二分搜索树的最小绝对值差 [TOC] 描述 给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。 示例 : 注意: 树中至少有2个节点。 方法一、中序遍历二分搜索树 思路 中序遍历二分搜索树,计算当前节点数据与上一个节点数据的绝对值的差值,遍历结束返回最小的绝对值差值 ... »

69. x 的平方根

Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a non-negative integer. Since the return type is an in ... »

9. 回文数

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Example 2: Example 3: ... »

2. 两数相加

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contai ... »

LeetCode--189--旋转数组

问题描述: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 方法1:1234567 k = 2 step1:54321 76 ;step2:6712345 官方: 官方二: 2018-09-15 11:57:25 ... »

LeetCode--176--第二高的薪水

问题描述: 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。 例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。 sql: select max(Salary) from Employe ... »

dp方法论——由矩阵相乘问题学习dp解题思路

导语 刷过一些算法题,就会十分珍惜“方法论”这种东西。Leetcode上只有题目、讨论和答案,没有方法论。往往答案看起来十分切中要害,但是从看题目到得到思路的那一段,就是绕不过去。楼主有段时间曾把这个过程归结于智商和灵感的结合,直到有天为了搞懂Leetcode上一位老兄的题型总结,花两天时间学习了回 ... »

120. Triangle

题目 Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below. For example, given the ... »

Dynamic Programming 1:入门

简介 如果你常刷leetcode,会发现许多问题带有Dynamic Programming的标签。事实上带有dp标签的题目有115道,大部分为中等和难题,占所有题目的12.8%(2018年9月),是占比例第二大的问题。 如果能系统地对dp这个topic进行学习,相信会极大地提高解题速度,对今后解决实 ... »

数组排列组合问题——BACKTRACKING

回溯法是一类递归算法,算法中每次只构建答案的一部分,在构建的过程中如果意识到答案不符合要求,会立刻将这一部分答案及它的所有子答案抛弃,以提高效率。 递归算法通常比较难想,容易出现做一个题时“每次都是新题”的情况。如果能够稍微记住一点简单的套路,认识到一个算法的重要点,以及文中几个题目的共性和区别,... ... »

SLIDING WINDOW

简介 用一个可伸缩的窗口遍历字符串,时间复杂度大致为O(n)。适用于“寻找符合某条件的最小子字符串”题型。 题目 链接 求某字符串T中含有某字符串S的所有字符的最小子字符串。如果不存在则返回"". 算法 用左右两个指针维护一个窗口。 WHY IT WORKS 设想一个最naive的算法如何遍历T中的 ... »