![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
Josgu
这个人太懒了,但从今天他要开始产量似母猪了
展开
-
LeetCode每天刷day54: Sqrt(x)
题目:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。题目链接: Sqrt(x)C++:二分查找class Solution {public: int mySqrt(int x) { if(x == 1) return 1; ...原创 2019-05-17 12:59:44 · 87 阅读 · 0 评论 -
LeetCode每天刷day40:Rotate Image
题目:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。题目链接:Rotate ImageC++:class Solution {public: void rotate(vector<vector<int>>& matri...原创 2019-04-26 23:26:59 · 75 阅读 · 0 评论 -
LeetCode每天刷day45:Spiral Matrix
题目:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。题目链接:Spiral MatrixC++:模拟旋转记录class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { ...原创 2019-05-01 22:26:13 · 83 阅读 · 0 评论 -
LeetCode每天刷day41:Group Anagrams
题目:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。题目链接:Group AnagramsC++:map的这个遍历的用法 和 move函数的使用有点意思class Solution {public: vector<vector<string>> groupAnagrams(vector<string>&...原创 2019-04-27 23:39:18 · 103 阅读 · 0 评论 -
LeetCode每天刷day38:Longest Consecutive Sequence
题目:给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。题目链接:Longest Consecutive SequenceC++:一般做就是排序然后遍历一遍, 时间复杂度是O(logn), 但是要求了时间复杂度为O(n), 所以使用了set进行实现了O(1)的hash查找每一个连续子序列的最小元素进行遍历记录class Solution {publi...原创 2019-04-23 20:17:36 · 98 阅读 · 0 评论 -
LeetCode每天刷day34:Reverse Words in a String
题目:给定一个字符串,逐个翻转字符串中的每个单词题目链接:Reverse Words in a StringC++:class Solution {public: string reverseWords(string s) { int lens = s.size(); if(lens == 0) return s; ...原创 2019-04-19 08:27:49 · 76 阅读 · 0 评论 -
LeetCode每天刷day34:Simplify Path
题目:以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (. .)(Markdown转换的原因, 我多加了个空格 (…)这实际上是两个点) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对...原创 2019-04-19 09:09:58 · 90 阅读 · 0 评论 -
LeetCode每天刷day42:Combination Sum II
题目:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。题目链接:Combination Sum IIC++:class Solution {public: vector<vector<int>> combi...原创 2019-04-28 17:16:05 · 97 阅读 · 0 评论 -
LeetCode每天刷day46:Jump Game
题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。题目链接:Jump GameC++:class Solution {public: bool canJump(vector<int>& nums) { int cnt = 1; for(i...原创 2019-05-03 22:43:37 · 86 阅读 · 0 评论 -
LeetCode每天刷day33:Combination Sum
题目:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。题目链接:Combination SumC++:class Solution {public: ...原创 2019-04-18 09:52:21 · 95 阅读 · 0 评论 -
LeetCode每天刷day32:2019 力扣杯 从始点到终点的所有路径
题目:给定有向图的边 edges,以及该图的始点 source 和目标终点 destination,确定从始点 source 出发的所有路径是否最终结束于目标终点 destination,即:从始点 source 到目标终点 destination 存在至少一条路径如果存在从始点 source 到没有出边的节点的路径,则该节点就是路径终点。从始点source到目标终点 destinati...原创 2019-04-17 18:07:28 · 1050 阅读 · 0 评论 -
LeetCode每天刷day36:周赛133两地调度
题目:公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。题目链接:两地调度C++:自己写的垃圾代码, 对比比人写的, 感觉自己C++的运用也太垃圾了…class Solution {public: struct node { ...原创 2019-04-21 12:13:58 · 241 阅读 · 0 评论 -
LeetCode每天刷day36:周赛133距离顺序排列矩阵单元格
题目:给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2) 之间的距离是曼哈顿距离,|r1 - r...原创 2019-04-21 12:19:01 · 170 阅读 · 0 评论 -
LeetCode每天刷day36:周赛133两个非重叠子数组的最大和
题目:给出非负整数数组 A ,返回两个非重叠(连续)子数组中元素的最大和,子数组的长度分别为 L 和 M。(这里需要澄清的是,长为 L 的子数组可以出现在长为 M 的子数组之前或之后。)从形式上看,返回最大的 V,而 V = (A[i] + A[i+1] + … + A[i+L-1]) + (A[j] + A[j+1] + … + A[j+M-1]) 并满足下列条件之一:0 <= i ...原创 2019-04-21 12:30:56 · 187 阅读 · 0 评论 -
LeetCode每天刷day29:Multiply Strings
题目:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。题目链接:Multi...原创 2019-04-13 22:56:15 · 90 阅读 · 0 评论 -
LeetCode每天刷day37:2019 力扣杯 有序数组中的缺失元素
题目:给出一个有序数组 A,数组中的每个数字都是 独一无二的,找出从数组最左边开始的第 K 个缺失数字。提示:1 <= A.length <= 500001 <= A[i] <= 1e71 <= K <= 1e8题目链接:有序数组中的缺失元素C++:class Solution {public: int missingElement(...原创 2019-04-22 11:23:42 · 344 阅读 · 0 评论 -
LeetCode每天刷day37:2019 力扣杯 按字典序排列最小的等效字符串
题目:给出长度相同的两个字符串:A 和 B,其中 A[i] 和 B[i] 是一组等价字符。举个例子,如果 A = “abc” 且 B = “cde”,那么就有 ‘a’ == ‘c’, ‘b’ == ‘d’, ‘c’ == ‘e’。等价字符遵循任何等价关系的一般规则:自反性:‘a’ == ‘a’对称性:‘a’ == ‘b’ 则必定有 ‘b’ == ‘a’传递性:‘a’ == ‘b’ 且 ...原创 2019-04-22 11:26:08 · 565 阅读 · 0 评论 -
LeetCode每天刷day37:2019 力扣杯 最长重复子串
题目:给定字符串 S,找出最长重复子串的长度。如果不存在重复子串就返回 0。题目链接:最长重复子串C++:class Solution {public: int longestRepeatingSubstring(string S) { int lens = S.size(); string maxsubstr; for (int ...原创 2019-04-22 11:28:57 · 376 阅读 · 0 评论 -
LeetCode每天刷day37:2019 力扣杯 有效子数组的数目
题目:给定一个整数数组 A,返回满足下面条件的 非空、连续 子数组的数目:子数组中,最左侧的元素不大于其他元素。提示:1 <= A.length <= 500000 <= A[i] <= 100000题目链接:有效子数组的数目C++:class Solution {public: int validSubarrays(vector<int&...原创 2019-04-22 11:33:29 · 641 阅读 · 0 评论 -
LeetCode每天刷day43:Maximum Subarray
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。题目链接:Maximum SubarrayC++:class Solution {public: int maxSubArray(vector<int>& nums) { int numsSize = nums.size(); ...原创 2019-04-29 09:19:17 · 80 阅读 · 0 评论 -
LeetCode每天刷day39:Permutations
题目:给定一个没有重复数字的序列,返回其所有可能的全排列。题目链接:PermutationsC++:class Solution {public: vector<vector<int>> permute(vector<int>& nums) { int lens = nums.size(); vector...原创 2019-04-24 20:34:47 · 81 阅读 · 0 评论 -
LeetCode每天刷day57:Path Sum
题目:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 ...原创 2019-05-20 11:13:02 · 86 阅读 · 0 评论 -
LeetCode每天刷day57:Path Sum II
题目:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。题目链接:Path Sum IIC++:DFS:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * ...原创 2019-05-20 14:28:58 · 87 阅读 · 0 评论 -
LeetCode每天刷day47:Merge Intervals
题目:给出一个区间的集合,请合并所有重叠的区间。题目链接:Merge IntervalsC++:class Solution {public: vector<vector<int>> merge(vector<vector<int>>& intervals) { if(intervals.size() == ...原创 2019-05-07 19:09:42 · 78 阅读 · 0 评论 -
LeetCode每天刷day57:Best Time to Buy and Sell Stock
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。题目链接:Best Time to Buy and Sell StockC++:class Solution {public: int maxProfit(vector<int...原创 2019-05-20 15:29:00 · 72 阅读 · 0 评论 -
LeetCode每天刷day58:Merge Sorted Array
题目:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。题目链接:Merge Sorted ArrayC++:class Solution ...原创 2019-05-21 11:08:58 · 58 阅读 · 0 评论 -
LeetCode每天刷day50:Minimum Path Sum
题目:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。题目链接:Minimum Path SumC++:动态规划class Solution {public: int minPathSum(vector<vector<int>>& grid) { ...原创 2019-05-11 20:02:42 · 90 阅读 · 0 评论 -
LeetCode每天刷day51:Unique Paths
题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。题目链接:Unique PathsC++:动态规划class Sol...原创 2019-05-12 18:34:48 · 88 阅读 · 0 评论 -
LeetCode每天刷day53:Remove Duplicates from Sorted Array II
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。题目链接:Remove Duplicates from Sorted Array IIC++:class Solution {public: int removeDuplicates(...原创 2019-05-16 22:50:49 · 72 阅读 · 0 评论 -
LeetCode每天刷day52:Climbing Stairs
题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。题目链接:Climbing StairsC++:问题转换为了求斐波拉契的第n项class Solution {public: int climbStairs(int n) { if(n <= 1){ ...原创 2019-05-14 23:37:28 · 107 阅读 · 0 评论 -
LeetCode每天刷day57:Number of Islands
题目:给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。题目链接:Number of IslandsC++:DFS:class Solution {public: int numIslands(vector<vector<char>...原创 2019-05-20 09:42:53 · 79 阅读 · 0 评论 -
LeetCode每天刷day39:Permutations II
题目:给定一个可包含重复数字的序列,返回所有不重复的全排列。题目链接:Permutations IIC++:多了个去重class Solution {public: vector<vector<int>> permuteUnique(vector<int>& nums) { int lens = nums.size()...原创 2019-04-24 20:37:13 · 78 阅读 · 0 评论 -
LeetCode每天刷day48:Length of Last Word
题目:给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。题目链接:Merge IntervalsC++:犯傻了错几次,要注意去除末尾空格class Solution {public: int lengthOfLastWord(string s) { ...原创 2019-05-08 20:24:20 · 104 阅读 · 0 评论 -
LeetCode每天刷day48:Spiral Matrix II
题目:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。题目链接:Spiral Matrix IIC++:class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>...原创 2019-05-08 20:44:22 · 76 阅读 · 0 评论 -
LeetCode每天刷day44:Pow(x, n)
题目:实现 pow(x, n) ,即计算 x 的 n 次幂函数。题目链接:Pow(x, n)C++:和之前做的除法一个思路class Solution {public: double myPow(double x, int n) { double res = 1.0; for(int i = n; i != 0; i /= 2) { ...原创 2019-04-30 23:33:14 · 104 阅读 · 0 评论 -
LeetCode每天刷day55:Rotate String
题目:给定两个字符串, A 和 B。A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = ‘abcde’,在移动一次之后结果就是’bcdea’ 。如果在若干次旋转操作之后,A 能变成B,那么返回True。题目链接:Rotate StringC++:记得做过一个类似的题目class Solution {public: bool rotateString(st...原创 2019-05-18 23:19:05 · 66 阅读 · 0 评论 -
LeetCode每天刷day49:All Paths From Source to Target
题目:给一个有 n 个结点的有向无环图,找到所有从 0 到 n-1 的路径并输出(不要求按顺序)二维数组的第 i 个数组中的单元都表示有向图中 i 号结点所能到达的下一些结点,空就是没有下一个结点了。题目链接:All Paths From Source to TargetC++:class Solution {public: vector<vector<int>...原创 2019-05-09 17:22:12 · 92 阅读 · 0 评论 -
LeetCode每天刷day56:最后一块石头的重量
题目:有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返...原创 2019-05-19 17:47:38 · 336 阅读 · 0 评论 -
LeetCode每天刷day57:Same Tree
题目:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。题目链接:Same TreeC++:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode...原创 2019-05-20 09:02:19 · 68 阅读 · 0 评论 -
LeetCode每天刷day35:Longest Continuous Increasing Subsequence
题目:给定一个未经排序的整数数组,找到最长且连续的的递增序列。题目链接:Longest Continuous Increasing SubsequenceC++:class Solution {public: int findLengthOfLCIS(vector<int>& nums) { if(nums.size() == 0 || num...原创 2019-04-20 17:46:00 · 83 阅读 · 0 评论