![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode刷题之路
qq_41760343
这个作者很懒,什么都没留下…
展开
-
Leetcode 刷题之路 之 算法思想 三、贪心算法 : 2) 435. 无重叠区间
题目描述:435. 无重叠区间难度:中等给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两原创 2020-06-24 15:57:27 · 206 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 三、贪心算法 : 1) 455. 分发饼干
题目描述:455. 分发饼干:https://leetcode-cn.com/problems/assign-cookies/难度:简单假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj。如果 sj>= gi,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。...原创 2020-06-23 16:47:38 · 225 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 二、排序 : 4) 75. 颜色分类【荷兰国旗问题】
题目描述:75. 颜色分类难度:中等给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。 首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、...原创 2020-06-23 16:09:24 · 186 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 二、排序 : 3) 451. 根据字符出现频率排序
题目描述:451. 根据字符出现频率排序难度:中等给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。示例 2:输入:"cccaaa"输出:"cccaaa"解释:'c'和'a'都出现三次。此外,"aaaccc"也是有效的答案。注意"cacaca"是不正确的,因为相同原创 2020-06-22 20:12:18 · 109 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 二、排序 : 2) 347. 前 K 个高频元素
题目描述:347. 前 K 个高频元素难度中等364给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(nlogn) ,n是数组的大小。 题目数据保证答案唯一...原创 2020-06-21 23:24:09 · 118 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 二、排序 : 1) 215. 数组中的第K个最大元素
题目描述:215. 数组中的第K个最大元素难度中等510在未排序的数组中找到第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说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。思路:1、首先可以直接使用sort()函数来解决。2、使...原创 2020-06-21 00:13:41 · 133 阅读 · 0 评论 -
排序算法 之 快速排序、归并排序、堆排序实现
快速排序:关键点:1、快排的思想很简单:每次以当前序列第一个元素为划分数据的监视哨,然后不断的遍历双指针,找到交换的位置,进行交换,直到两个指针相遇。2、细节点:在遍历和赋值的时候一定要判断两个指针的位置。#include<iostream>#include<vector>#include <algorithm>using namespace std;void quickSortCore(vector<int> & nums原创 2020-06-19 10:43:25 · 292 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 一、双指针 : 7) 524. 通过删除字母匹配到字典里最长单词
题目描述:524. 通过删除字母匹配到字典里最长单词难度:中等给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。示例 1:输入:s = "abpcplea", d = ["ale","apple","monkey","plea"]输出: "apple"示例2:输入:s = "abpcplea", d = ["a","b",.原创 2020-06-19 09:55:24 · 71 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 一、双指针 : 6) 141. 环形链表
题目描述:141. 环形链表难度简单636给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos是-1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], pos = 0输出:true解释:链表中有一个环,其尾部连接到第...原创 2020-06-18 20:31:29 · 94 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 一、双指针 : 5) 88. 合并两个有序数组
题目描述:88. 合并两个有序数组难度简单给你两个有序整数数组nums1和nums2,请你将nums2合并到nums1中,使nums1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n =...原创 2020-06-18 18:35:40 · 109 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 一、双指针 : 4) 680. 验证回文字符串 Ⅱ
题目描述:680. 验证回文字符串 Ⅱ难度简单215给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000思路:1、首先是验证回文串,我们知道如果想要验证一个字符串是不是回文串,是需要两个指针来进行判断。2、因为题目中是要求最多删除一个字符,使其..原创 2020-06-17 21:50:46 · 99 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 一、双指针 : 3) 345. 反转字符串中的元音字母
题目描述:345. 反转字符串中的元音字母难度:简单编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。思路:1、因为要反转字母,所以从前 从后 分别来遍历字符串2、双指针,和快速排序的思想很想,需要找到交换的条件// 开始的想法:写的太粗糙了,很多直接用函数封装起来就行了class.原创 2020-06-16 20:40:23 · 131 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 一、双指针 : 1) 167. 两数之和 II - 输入有序数组
题目描述:167. 两数之和 II - 输入有序数组难度简单302给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [...原创 2020-06-08 13:11:31 · 100 阅读 · 0 评论 -
Leetcode 刷题之路 之 算法思想 一、双指针 : 2) 633. 平方数之和
题目描述:633. 平方数之和难度简单给定一个非负整数c,你要判断是否存在两个整数a和b,使得a2+ b2= c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5示例2:输入: 3输出: False题目链接:https://leetcode-cn.com/problems/sum-of-square-numbers/思路:1、因为要判断两个数平方和为一个整数,所以我们需要不断缩小范围,可以认为是从一个有序...原创 2020-06-11 10:00:30 · 397 阅读 · 0 评论