
LeetCode
文章平均质量分 73
wchstrife
现实如果对你不公
别计较太多
走吧 暴风雨后的彩虹
展开
-
[LeetCode] 第 204 场周赛
周赛2041566. 重复至少 K 次且长度为 M 的模式难度:Easy题目描述:解题思路:暴力法:pattern的起始位置i在[0, n - m * k]之间对于i,判断后续的[i+m, i + m * k]是否满足条件class Solution {public: bool containsPattern(vector<int>& a, int m, int k) { int n = a.size(); if(n <原创 2020-09-13 21:07:11 · 161 阅读 · 0 评论 -
[LeetCode] 第 203 场周赛
第 203 场周赛1560. 圆形赛道上经过次数最多的扇区难度:Easy题目描述:1560. 圆形赛道上经过次数最多的扇区解题思路:最终的路径只跟起点和终点有关系中间的路径都是均等出现的次数class Solution {public: vector<int> mostVisited(int n, vector<int>& rounds) { vector<int> ans; int start =原创 2020-09-13 15:04:25 · 120 阅读 · 0 评论 -
[LeetCode] 329. 矩阵中的最长递增路径
[LeetCode] 329. 矩阵中的最长递增路径(DFS+MEMO)难度:Hard题目描述:解题思路:用一个Memo记录当前memo[i][j]位置是多少最长路径对棋盘中的每个点进行DFS,当坐标不越界,并且判断的格子是递增的时候:memo[x][y] = max(memo[x][y], dfs(matrix, newX, newY, memo) + 1)class Solution {public: int dx[4] = {-1, +1, 0, 0}; int原创 2020-09-03 20:08:14 · 173 阅读 · 0 评论 -
[LeetCode] 215.数组中的第K个最大元素
[LeetCode] 215.数组中的第K个最大元素难度:Medium题意:思路:方法一:快排,根据partition的结果对左右区间进行递归计算class Solution {public: int partition(vector<int>& nums, int left, int right){ // 随机在 [left, right] 中, 选择一个数值作为标定点 pivot swap(nums[left], nums[ra原创 2020-08-27 21:30:16 · 146 阅读 · 0 评论 -
[LeetCode] 15.三数之和
[LeetCode] 15.三数之和难度:Medium题意:题解:只用O(N*2)的复杂度,先进行排序。固定i,确定left,right进行遍历。class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { if (nums.size() < 3) { return {}; }原创 2020-08-27 15:08:58 · 118 阅读 · 0 评论 -
[LeetCode] 50. Pow(x, n)
50. Pow(x, n)50. Pow(x, n)难度:Medium题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围原创 2020-08-25 10:39:11 · 127 阅读 · 0 评论 -
[LeetCode] 双周赛33
[LeetCode] 双周赛335479. 千位分隔数难度:Easy题目描述: 5479. 千位分隔数解题思路:将n转为字符串后挨个插入即可,注意insert后下标i会出现变化class Solution {public: string thousandSeparator(int n) { if(n == 0){ return "0"; } string source = to_string(原创 2020-08-23 16:13:47 · 172 阅读 · 0 评论 -
[LeetCode] 46.全排列
46.全排列(回溯)难度:Medium题目描述:给定一个 没有重复 数字的序列,返回其所有可能的全排列。解题思路:方法一:利用一个Used数组记录当前数字是否被使用。对当前数组Nums进行回溯,注意递归完成之后要清空状态class Solution {public: vector<vector<int>> permute(vector<int>& nums) { vector<vector<int>>原创 2020-08-22 14:27:27 · 106 阅读 · 0 评论 -
[LeetCode] 周赛 202
class Solution {public: int maxDistance(vector<int>& position, int m) { int n = position.size(); // 数组元素的个数 int maxDis = INT_MIN; for(int i = 0; i < n - m; i++){ vector<int>原创 2020-08-21 11:25:20 · 139 阅读 · 0 评论 -
[LeetCode] 410. 分割数组的最大值
410. 分割数组的最大值(二分)难度:Hard题目描述:给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ m ≤ min(50, n)示例:输入: nums = [7,2,5,10,8] m = 2输出: 18解释: 一共有四种方法将nums分割为2个子数组。其中最好的方式是将其分为[7,2,5] 和 [10,8], 因为此时这两个原创 2020-08-21 00:15:22 · 177 阅读 · 0 评论 -
[LeetCode] 链表反转
[LeetCode] 链表反转专题206. 反转链表难度:Easy题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路:方法1:头插法新建一个dummy结点,作为开始的结点。依次将链表中的元素插入dummy结点的后面。class Solution {public: ListNode* reverseList(ListNode* h原创 2020-08-03 17:07:13 · 348 阅读 · 0 评论 -
[LeetCode] 周赛200
LeetCode 周赛2005475. 统计好三元组难度: Easy题目描述:链接:5475. 统计好三元组解题思路:暴力三重循环模拟class Solution {public: int countGoodTriplets(vector<int>& arr, int a, int b, int c) { int ans = 0; for(int i = 0; i < arr.size(); i++){原创 2020-08-02 16:15:50 · 254 阅读 · 0 评论 -
[LeetCode] 204.计算质数
204. 计算质数难度:Easy题目描述:统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。解题思路:1.暴力法对于每一个数i,遍历从0-i是否有数能整除,如果能整除就不是质数。 //暴力法 int count = 0; for (int i = 2; i < n; i++) { bool flag原创 2020-07-30 11:08:03 · 161 阅读 · 0 评论 -
[LeetCode] 打家劫舍
198. 打家劫舍难度:Easy题目描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3原创 2020-07-29 11:39:22 · 158 阅读 · 0 评论 -
[LeetCode] 88. 合并两个有序数组
88. 合并两个有序数组难度:Easy题目描述:给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3输出: [1,原创 2020-07-28 22:49:32 · 102 阅读 · 0 评论 -
[LeetCode] 二叉树相关题目
94. 二叉树的中序遍历class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> nodes; inorder(root, nodes); return nodes; }private: // 递归的方法 void inorder(TreeNode* root, vector<int原创 2020-07-27 23:08:54 · 128 阅读 · 0 评论 -
[LeetCode] 206. 反转链表
206. 反转链表难度:Easy题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路:方法一:头插法虚拟一个新的头部结点dummy,然后不断的将head指向的结点插入到dummy结点后面。注意dummy->next要置空,不要直接指向head。class Solution {public: ListNode* reverseLi原创 2020-07-27 00:38:46 · 99 阅读 · 0 评论 -
[LeetCode] 237. 删除链表中的结点
237. 删除链表中的结点难度: Easy题目描述:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], node = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个原创 2020-07-24 11:34:26 · 121 阅读 · 0 评论 -
[LeetCode] 14. 最长公共前缀
14. 最长公共前缀难度:Easy题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解题思路解法一:横向扫描假设第一个字符串为最长公共前缀prefix,之后用prefix和后面的字符串寻找新的pr原创 2020-07-23 08:43:40 · 139 阅读 · 0 评论 -
[LeetCode] 38. 外观数列
38. 外观数列难度:easy题目描述:给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:111211211111221第一项是数字 1描述前一项,这个数是 1 即 “一个 1 ”,记作 11描述前一项,这个数是 11 即 “两个 1 ” ,记作 21描述前一项,这个数是 21 即 “一个 2原创 2020-07-22 16:00:51 · 97 阅读 · 0 评论 -
[LeetCode] 8.字符串转换整数
8. 字符串转化整数题目难度:Medium题目要求:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响原创 2020-07-21 10:57:44 · 122 阅读 · 0 评论 -
[LeetCode] 验证回文字符串
验证回文字符串125. 验证回文字符串难度:Easy题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false解题思路:isnum() 判断是否为数字isalpha() 判断是否为字母isalnum() 判断是否为数字或字母首尾双原创 2020-07-21 08:32:47 · 280 阅读 · 0 评论 -
[LeeCode] 48.旋转图像
48.旋转图像难度:Medium题目描述:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ],原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ]示例 2:给定 matrix = [ [ 5, 1, 9,原创 2020-07-20 13:18:45 · 115 阅读 · 0 评论 -
[LeetCode] 283.移动零
283. 移动零283. 移动零难度:easy题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解题思路方法一:两次遍历,快慢指针使用i遍历整个数组,使用j记录非0的数组。当i指向的数字非0时就复制给j位置。最后将j后面的位置全部填充为0class Solution {public:原创 2020-07-15 17:29:05 · 106 阅读 · 0 评论 -
[LeetCode] 两个数组的交集
两个数组的交集349. 两个数组的交集1难度:Easy题目描述:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。解题思路:解法一:利用Set将第一个数组用Set结构存储,进行去重。然后遍历第二个数字,查找在S原创 2020-07-15 16:10:17 · 228 阅读 · 0 评论 -
[LeetCode] 136.只出现一次的数字
只出现一次的数字136.只出现一次的数字难度:Easy题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题思路:解法一:哈希法利用Map进行计数,最后遍历得到只出现一次的数字。时间复杂读O(N),空间复杂度O(N)。class Solution {public: int singleNumber(vect原创 2020-07-09 12:26:51 · 105 阅读 · 0 评论 -
[LeetCode] 存在重复元素
存在重复元素217、存在重复元素难度:Easy题目描述:给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4...原创 2020-04-28 10:47:52 · 195 阅读 · 0 评论 -
[LeetCode] 189. 旋转数组
189. 旋转数组难度:Easy题目描述:给定一个数组,将数组中的元素向右移动 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]向右旋转 3 步: [5,6,7,1,2,3,4]...原创 2020-04-26 01:07:13 · 163 阅读 · 0 评论 -
[LeetCode] 买卖股票的最佳时机1-3
买卖股票的最佳时机121、买卖股票的最佳时机难度:Easy题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 ...原创 2020-04-17 23:26:00 · 220 阅读 · 0 评论 -
598. Range Addition II
598. Range Addition IIDescriptionHintsSubmissionsDiscussSolutionDiscussPick OneGiven an m * n matrix M initialized with all 0's and several update operations.原创 2017-08-10 20:35:46 · 490 阅读 · 0 评论 -
463. Island Perimeter
463. Island PerimeterDescriptionHintsSubmissionsSolutionsTotal Accepted: 41559Total Submissions: 72872Difficulty: EasyContributors:amankarajYou are given a ma原创 2017-06-19 20:14:47 · 257 阅读 · 0 评论 -
【算法】进制转换C++
任意进制转为10进制把任意进制的数写成幂级数的形式int y = 0, product;while(x != 0){ y = y + (x % 10) * product; x = x / 10; product = product * p;}10进制辗转相除法To任意进制int ans[100], count = 0; do{ ...原创 2018-07-24 23:29:48 · 1304 阅读 · 0 评论 -
617. Merge Two Binary Trees
617. Merge Two Binary TreesDescriptionHintsSubmissionsSolutionsTotal Accepted: 5554Total Submissions: 7673Difficulty: EasyContributors:jiatangGiven two binary原创 2017-06-15 15:53:16 · 2135 阅读 · 0 评论 -
606. Construct String from Binary Tree
DescriptionHintsSubmissionsSolutionsDiscuss Editorial SolutionPick OneYou need to construct a string consists of parenthesis and integers from a binary tree with原创 2017-06-27 09:24:25 · 252 阅读 · 0 评论 -
575. Distribute Candies
575. Distribute CandieDescriptionHintsSubmissionsSolutionsTotal Accepted: 12203Total Submissions: 20276Difficulty: EasyContributors:fallcreekGiven an integer array原创 2017-06-12 22:58:05 · 307 阅读 · 0 评论 -
136. Single Number
136. Single NumberDescriptionHintsSubmissionsSolutionsDiscuss Editorial SolutionPick OneGiven an array of integers, every element appears twice except原创 2017-06-24 12:41:52 · 198 阅读 · 0 评论 -
500. Keyboard Row
Given a List of words, return the words that can be typed using letters of alphabet on only one row's of American keyboard like the image below.Example 1:Input: ["Hello", "Alaska", "Da原创 2017-06-09 10:06:01 · 251 阅读 · 0 评论 -
104. Maximum Depth of Binary Tree
104. Maximum Depth of Binary TreeDescriptionHintsSubmissionsSolutionsDiscuss Editorial SolutionPick OneGiven a binary tree, find its maximum depth.T原创 2017-06-29 16:23:58 · 209 阅读 · 0 评论 -
566. Reshape the Matrix
In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new one with different size but keep its original data.You're given a matrix represented by a two-dim原创 2017-06-07 11:19:55 · 229 阅读 · 0 评论 -
496. Next Greater Element I
496. Next Greater Element IDescriptionHintsSubmissionsSolutionsTotal Accepted: 26241Total Submissions: 45724Difficulty: EasyContributors:love_FawnYou are give原创 2017-06-17 19:44:56 · 295 阅读 · 0 评论