
Leetcode
iduanbin
Stay hungry. Stay foolish
展开
-
一年中的第几天 | LeetCode
文章目录一、题目描述二、题解思路三、程序实例一、题目描述二、题解思路将年月日提取出来;加上天数;加上相应前一个月的天数;判断是否为闰年,是就加1;三、程序实例class Solution {public: int dayOfYear(string date) { int year = atoi(date.substr(0, 4).c_str()); ...原创 2019-08-16 16:00:14 · 376 阅读 · 0 评论 -
LeetCode | 求众数
文章目录一、题目描述二、题解思路三、程序实例一、题目描述给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2二、题解思路众位数肯定是数组...原创 2019-07-10 22:18:01 · 125 阅读 · 0 评论 -
LeetCode | 快乐数
文章目录一、题目描述二、题解思路三、程序实例一、题目描述编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例:输入: 19输出: true解释: 12 + 92 = 8282 + 22 = 68...原创 2019-07-10 22:17:27 · 138 阅读 · 0 评论 -
LeetCode | 阶乘后的零
文章目录一、题目描述二、题解思路三、程序实例一、题目描述给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。二、题解...原创 2019-07-10 22:16:49 · 147 阅读 · 0 评论 -
LeetCode | 环形链表
文章目录一、题目描述二、题解思路三、程序实例一、题目描述给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:...原创 2019-07-10 22:16:10 · 162 阅读 · 0 评论 -
LeetCode | 反转链表
文章目录一、题目描述二、题解思路三、程序实例一、题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?二、题解思路递归;自身链表的反转;三、程序实例/** * Definitio...原创 2019-07-10 22:15:33 · 181 阅读 · 0 评论 -
LeetCode | 颠倒二进制位
文章目录一、题目描述二、题解思路三、程序实例一、题目描述颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, ...原创 2019-07-10 22:15:00 · 133 阅读 · 0 评论 -
LeetCode | 打家劫舍
文章目录一、题目描述二、题解思路三、程序实例一、题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解...原创 2019-07-10 22:14:19 · 165 阅读 · 0 评论 -
LeetCode | Fizz Buzz
文章目录一、题目描述二、题解思路三、程序实例一、题目描述写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[ "1", "2...原创 2019-07-10 22:13:38 · 157 阅读 · 0 评论 -
LeetCode | Excel表列序号
文章目录一、题目描述二、题解思路三、程序实例一、题目描述给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: "A"输出: 1示例 2:输入: "AB"输出: 28示例 3:输入:...原创 2019-07-10 22:12:42 · 241 阅读 · 0 评论 -
LeetCoe | 按序打印
一、题目描述我们提供了一个类:public class Foo { public void one() { print("one"); } public void two() { print("two"); } public void three() { print("three"); }}三个不同的线程将会共用一个 Foo 实例。线程 A 将会调用 one() 方法线程...原创 2019-07-15 10:40:30 · 681 阅读 · 0 评论 -
LeetCode | 移动零
一、题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。二、题解思路将数组从后往前移动,碰到0且不是最后一个元素,则需要移动当前下标以及以后的元素。要想移动的最少,需要增加一个count,也就是...原创 2019-07-10 22:23:11 · 157 阅读 · 0 评论 -
LeetCode | 3的幂
一、题目描述给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?二、题解思路循环求幂然后比较大小,等于的时候是是 3 的幂次方,不等于或者大于则不是。n 大于...原创 2019-07-10 22:23:18 · 156 阅读 · 0 评论 -
LeetCode | 两个数组的交集 II
一、题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。进阶:...原创 2019-06-17 10:55:59 · 160 阅读 · 0 评论 -
LeetCode | 移除链表元素
一、题目描述删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5二、题解思路普通遍历;递归;三、程序实例/** * Definition for singly-linked list. * struct ListNod...原创 2019-07-10 22:21:07 · 141 阅读 · 0 评论 -
LeetCode | 数字的补数
一、题目描述给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。...原创 2019-06-11 11:26:57 · 253 阅读 · 0 评论 -
LeetCode | 删除字符串中的所有相邻重复项
一、题目描述给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得...原创 2019-06-04 11:08:27 · 1164 阅读 · 0 评论 -
LeetCode | 相交链表
文章目录一、题目描述二、题解思路三、程序实例一、题目描述编写一个程序,找到两个单链表相交的起始节点。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 ...原创 2019-07-10 22:19:13 · 165 阅读 · 0 评论 -
LeetCode | 旋转数组
文章目录一、题目描述二、题解思路三、程序实例一、题目描述给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转...原创 2019-07-10 22:19:51 · 174 阅读 · 0 评论 -
分糖果 II | LeetCode
一、题目描述排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程(每次都比上...原创 2019-08-19 11:42:23 · 186 阅读 · 0 评论 -
LeetCoe | 等价多米诺骨牌对的数量
一、题目描述给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a == c 且 b == d,或是 a == d 且 b == c。在 0 <= i < j ...原创 2019-08-07 10:57:32 · 166 阅读 · 0 评论 -
LeetCode | 第 N 个泰波那契数
文章目录一、题目描述二、题解思路三、程序实例一、题目描述泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数 n,请返回第 n 个泰波那契数 Tn 的值。二、题解思路利用公式Tn+3 = Tn + Tn+1 + Tn+2。每计算一次n3就向后移动一位:// 第一次0 ...原创 2019-08-06 18:15:27 · 274 阅读 · 0 评论 -
LeetCode | 数组的相对排序
文章目录一、题目描述二、题解思路三、程序实例一、题目描述给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,...原创 2019-08-08 10:44:45 · 505 阅读 · 0 评论 -
LeetCode | 路径总和 III
一、题目描述给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8...原创 2019-08-01 11:41:46 · 170 阅读 · 0 评论 -
LeetCoe | 翻转二叉树
文章目录一、题目描述二、题解思路三、程序实例一、题目描述翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1备注:这个问题是受到 Max Howell 的 原问题 启发的 :谷歌:我们90%的工程师...原创 2019-08-05 11:27:16 · 193 阅读 · 0 评论 -
LeetCode | 把二叉搜索树转换为累加树
文章目录一、题目描述二、题目解析三、程序实例一、题目描述给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 二叉搜索树: 5 / \ 2 13输出: 转换为累加树: ...原创 2019-07-26 19:15:51 · 156 阅读 · 0 评论 -
LeetCode | 找到字符串中所有字母异位词
一、题目描述给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例 1:输入:s: "cbaebabacd" p: "abc"输出:[0, 6]解释:起始索引等于 ...原创 2019-07-31 16:22:27 · 176 阅读 · 0 评论 -
LeetCode | 找到所有数组中消失的数字
一、题目描述给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]二、题解思...原创 2019-07-30 17:08:03 · 210 阅读 · 0 评论 -
LeetCode | 二叉树的直径
文章目录一、题目描述二、题解思路三、程序实例一、题目描述给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 ...原创 2019-07-25 10:12:01 · 306 阅读 · 0 评论 -
LeetCode | 汉明距离
一、题目描述两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。二、题解思路取低位依次...原创 2019-07-29 11:06:06 · 137 阅读 · 0 评论 -
LeetCode | 最短无序连续子数组
文章目录一、题目描述二、题解思路三、程序实例一、题目描述给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 :...原创 2019-07-24 10:47:06 · 393 阅读 · 0 评论 -
LeetCode | 二叉搜索树的最近公共祖先
一、题目描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root...原创 2019-07-19 10:33:39 · 295 阅读 · 0 评论 -
LeetCode | 合并二叉树
一、题目描述给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 ...原创 2019-07-23 16:55:54 · 122 阅读 · 0 评论 -
LeetCode | 反转字符串中的单词 III
一、题目描述给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。二、题解思路字符串反转,注意保留空格和\0。三、程序实例cla...原创 2019-07-16 13:06:17 · 184 阅读 · 0 评论 -
LeetCode | 2的幂
一、题目描述给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false二、题解思路暴力匹配,相等就说明有,大于就没有;2的幂在二进制里只有一个位是为1的;三、程序实例class Solution {...原创 2019-07-18 10:23:47 · 218 阅读 · 0 评论 -
LeetCode | 只出现一次的数字
一、题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4二、题解思路利用集合,在集合中的删除,不在的加入,最后剩下一个不同的;利用异或,相同数字异或为...原创 2019-07-11 10:22:44 · 122 阅读 · 0 评论 -
LeetCode | 有效的字母异位词
一、题目描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对...原创 2019-07-10 22:22:48 · 192 阅读 · 0 评论 -
LeetCode | 字符串的最大公因子
一、题目描述对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。示例 1:输入:str1 = "ABCABC", str2 = "ABC"输出:"ABC"示例 2:输入:str1 = "ABABAB", str2 = "ABAB"输出...原创 2019-06-10 11:29:47 · 617 阅读 · 0 评论 -
LeetCode 比较含退格的字符串-C++
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 3:输入:S = "a##c",...原创 2019-04-25 10:51:32 · 317 阅读 · 0 评论 -
LeetCode | 二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]题解思路层次遍历,将节点加入到链表中保存,...原创 2019-05-08 10:28:48 · 166 阅读 · 0 评论