给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。 Read More
posted @ 2019-08-07 23:32 有梦放飞 Views(541) Comments(0) Diggs(0) Edit
格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。 示例 1: 输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2 对于给定的 n,其格雷编码序 Read More
posted @ 2019-08-07 22:49 有梦放飞 Views(119) Comments(0) Diggs(0) Edit
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 思路: 动态规划,类比爬梯子那道题。可以维护一个二维数组dp,其中dp[i][j] Read More
posted @ 2019-08-07 22:41 有梦放飞 Views(275) Comments(0) Diggs(0) Edit
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表。 示例 1: 输入:head = [3,2,0 Read More
posted @ 2019-08-07 22:09 有梦放飞 Views(260) Comments(0) Diggs(0) Edit
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []] Read More
posted @ 2019-08-07 22:04 有梦放飞 Views(265) Comments(0) Diggs(0) Edit
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 输入: 4->2->1->3输出: 1->2->3->4示例 2: 输入: -1->5->3->4->0输出: -1->0->3->4->5 Read More
posted @ 2019-08-07 21:59 有梦放飞 Views(154) Comments(0) Diggs(0) Edit
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。pop() -- 删除栈顶的元素。top() -- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例: MinStack minStack = new Min Read More
posted @ 2019-08-07 21:52 有梦放飞 Views(399) Comments(0) Diggs(0) Edit
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明: 你可以假设 Read More
posted @ 2019-08-07 21:44 有梦放飞 Views(633) Comments(0) Diggs(0) Edit
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2: 输入: r Read More
posted @ 2019-08-07 21:38 有梦放飞 Views(512) Comments(0) Diggs(0) Edit
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6, Read More
posted @ 2019-08-07 21:28 有梦放飞 Views(402) Comments(0) Diggs(0) Edit
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1, Read More
posted @ 2019-08-07 21:23 有梦放飞 Views(130) Comments(0) Diggs(0) Edit
给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 Read More
posted @ 2019-08-07 21:15 有梦放飞 Views(354) Comments(0) Diggs(0) Edit
你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。 你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。 示例: 输入: 4输出: false 解释: 如果堆中有 Read More
posted @ 2019-08-07 21:03 有梦放飞 Views(492) Comments(0) Diggs(0) Edit