LeetCode
Aff ''
你是我的文艺复兴
展开
-
【LeetCode 217、219、220】存在重复元素、存在重复元素 II、存在重复元素 III
存在重复元素:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true方法1:利用vecto...原创 2019-05-12 13:37:56 · 184 阅读 · 0 评论 -
【LeetCode 14】最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。方法1:两层循环逐个比较,注意循环条件!class Solution {public:...原创 2019-05-13 16:51:24 · 137 阅读 · 0 评论 -
【LeetCode 15、16】三数之和、最接近的三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]class Sol...原创 2019-05-17 18:58:33 · 149 阅读 · 0 评论 -
【LeetCode121、122】买卖股票的最佳时机、买卖股票的最佳时机 II
LeetCode 121 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候...原创 2019-05-28 17:00:48 · 153 阅读 · 0 评论 -
【LeetCode 946】验证栈序列
给定 pushed 和 popped 两个序列,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3), push(4...原创 2019-05-28 17:40:00 · 168 阅读 · 0 评论 -
【LeetCode 1】两数之和 — C++
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。方法一://暴力法class Solution {public: vector<int> twoSum(vector<int>& nums...原创 2019-07-01 17:58:56 · 139 阅读 · 0 评论 -
【网易】牛牛找工作 — C++
利用map映射实现 //map会对插入数据进行排序题目描述:为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。输入描述:每个输入包含一个测试用例。每个测试...原创 2019-07-04 11:27:23 · 623 阅读 · 0 评论 -
【网易】矩形重叠 、牛牛的背包、小易的字典 — C++
矩形重叠:题目描述:平面内有n个矩形, 第i个矩形的左下角坐标为(x1[i], y1[i]), 右上角坐标为(x2[i], y2[i])。 如果两个或者多个矩形有公共区域则认为它们是相互重叠的(不考虑边界和角落)。 请你计算出平面内重叠矩形数量最多的地方,有多少个矩形相互重叠。 输入描述:输入包括五行。第一行包括一个整数n(2 <= n <= 50), 表示矩形的个...原创 2019-07-05 20:47:20 · 1716 阅读 · 1 评论 -
【LeetCode 322、518】零钱兑换、零钱兑换 II — C++
LeetCode 322 零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amo...原创 2019-08-12 10:49:21 · 393 阅读 · 0 评论 -
【LeetCode 135】分发糖果 — C++
老师想给孩子们分发糖果,有 N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。示例2:...原创 2019-08-12 13:46:59 · 718 阅读 · 0 评论 -
【LeetCode 144、94、145、102、107】二叉树的前序遍历、中序遍历、后序遍历、层次遍历 [递归、非递归]
LeetCode 144 前序遍历递归遍历:class Solution {public: vector<int> vec; vector<int> preorderTraversal(TreeNode* root) { if(root == NULL) { return vec;...原创 2019-05-24 20:28:35 · 307 阅读 · 0 评论 -
【LeetCode 148】排序链表
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5借助一个排序算法来进行实现,因为要求在O(n log n)时间复杂度下...原创 2019-05-11 10:28:52 · 137 阅读 · 0 评论 -
【LeetCode 236】C++实现递归、非递归求二叉树的最近公共节点
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */c...原创 2019-03-30 19:50:10 · 365 阅读 · 0 评论 -
【LeetCode 230】二叉搜索树中第K小的元素
1.二分法 二叉搜索树特点是左节点值小于根节点,而右节点值大于根节点;利用这个特性可以采用二分法,将整个树的节点分为左节点和右节点两部分,当k值等于左节点值+1时,说明此时root为要求的第k小元素;当k值小于左节点值时,说明第k小元素位于根节点左侧;当k值大于左节点时,说明第k小元素位于根节点右侧;之后递归,在满足条件的左右两侧节点中进行遍历划分,直到求出第k小。/** * D...原创 2019-04-10 17:46:59 · 677 阅读 · 0 评论 -
【LeetCode 557】反转字符串中的单词 III
要对字符串中单词进行反转,首先要将字符串中单词进行分割;之后对单词进行逆转方法1:结合栈对字符串进行分割 ,当不出现空格时,将字符不断入栈;当遇到空格,就将栈内字符出栈,即可完成逆置;class Solution {public: string reverseWords(string s) { stack<char> ans; int...原创 2019-04-11 19:49:24 · 151 阅读 · 0 评论 -
疯狂队列
题目描述:小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大的顺序来进行列队。现在给出n个学生的身高,请计...原创 2019-04-12 18:27:54 · 352 阅读 · 0 评论 -
【LeetCode 5】最长回文子串[中心法、动态规划]
题目描述:给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。1.中心法:i作为回文串的中心字母,j作为回文串的半径进行遍历;class Solution {public: string longestPalindrome(string s) { if(s.empty()) return s; int len...原创 2019-04-13 23:08:12 · 131 阅读 · 0 评论 -
【LeetCode 39、40】组合总和、组合总和 II
39、组合总和问题描述: 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。说明: 所有数字(包括 target)都是正整数; 解集不能包含重复的组合。 class Solution {public: ...原创 2019-04-21 22:17:31 · 180 阅读 · 0 评论 -
【LeetCode 46】全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]class Solution {public: vector<vector<int>> permute(vector&l...原创 2019-05-02 21:50:50 · 145 阅读 · 0 评论 -
【LeetCode 160】相交链表[3种解法]
题目描述:编写一个程序,找到两个单链表相交的起始节点。1.暴力求解:一个个进行对比,找到第一个相等的节点就是交点ps:效率低/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : va...原创 2019-04-19 19:10:44 · 539 阅读 · 1 评论 -
【LeetCode 3】无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "...原创 2019-05-10 19:26:21 · 120 阅读 · 0 评论 -
缺失的括号+括号匹配深度
缺失的括号题目描述一个完整的括号字符串定义规则如下:1、空字符串是完整的。2、如果s是完整的字符串,那么(s)也是完整的。3、如果s和t是完整的字符串,将它们连接起来形成的st也是完整的。例如,"(()())", ""和"(())()"是完整的括号字符串,"())(", "()(" 和 ")"是不完整的括号字符串。牛牛有一个括号字符串s,现在需要在其中任意位置尽量少地添加括号,将...原创 2019-05-10 20:07:47 · 380 阅读 · 0 评论 -
【LeetCode 78】子集树/求子集 [回溯、位运算]
回溯法:nums[1,2,3],可以对数字1,2,3选择进行处理,数字1,我们有两个选择,放进集合中或者不在集合中;class Solution {public: void dfs(vector<int>& nums,int index,vector<int>& path,vector<vector<int>>&a...原创 2019-04-05 11:34:26 · 252 阅读 · 0 评论