LeetCode
文章平均质量分 69
被月亮晒黑_
这个作者很懒,什么都没留下…
展开
-
【LeetCode】4.vector<char>转string
这道题开始定义的是vector<vector<int>> ,然后需要vector<int>转string。本来打算是先用vector<int>转成char[],然后char[]转string,但是vector<int>转char[]时char数组不管怎么定义初始长度,后面总会出现乱码,改了很久都是这样,于是换了一种方法。开...原创 2018-06-21 22:09:29 · 1251 阅读 · 0 评论 -
【LeetCode】15.桶排序 (347 前K个高频元素)
0.题目说明给定一个非空的整数数组,返回其中出现频率前 k 高的元素。1.桶排序桶排序可以参考这篇博客:https://www.jianshu.com/p/e6ba35133375桶排序代码如下:vector&lt;int&gt; bucketSort(vector&lt;int&gt;&amp; nums) { vector&lt;int&gt; ret;原创 2019-03-10 23:32:31 · 336 阅读 · 0 评论 -
【LeetCode】12.两数之和2(167双指针)
0.题目要求给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:1.暴力解法暴力解法就是两层循环依次遍历,直到找到符...原创 2019-03-07 20:14:49 · 180 阅读 · 0 评论 -
【LeetCode】13.快速排序和堆排序 (215 数组中的第K个最大元素)
0.题目说明在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。这道题可以看成是排序题,我这里借着这道题实现一下快排和堆排序。1.快速排序快速排序相关的内容我看的这篇博客,讲得很清楚:https://blog.csdn.net/adusts/article/details/80882649我用他的思路写的程序如下:...原创 2019-03-08 00:56:22 · 377 阅读 · 0 评论 -
【LeetCode】16.二分法 (69)
0.题目描述实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。1. 二分法这道题利用二分法的思想,若当前数的平方大于x,当前数的前一个数的平方小于x,则可判定是否是x的平方根。代码如下int mySqrt(int x) { int low = 0,high = x; in...原创 2019-03-12 21:45:42 · 189 阅读 · 0 评论 -
【LeetCode】18.分治(455)
0.分治分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。(来自度娘的搬运工) 简单的说,分治就是分而治之,把一个问题拆分成几个小问题,最后再汇总解决的办法。有两点需要记住:(1) 分治法基本思想是将一个规模为n的问题分解为k个规模较小的子问题...原创 2019-07-29 23:31:01 · 158 阅读 · 0 评论 -
【LeetCode】19.链表(160)
0.链表介绍(1)如图, 链表是一种非常常用的数据结构链表头:指向第一个链表结点的指针链表结点:链表中的每一个元素,包括:(1)当前结点的数据,(2)下一个结点的地址链表尾:不再指向其他结点的结点,其地址部分放一个NULL,表示链表到此结束。(2)链表可以动态地创建动态地申请内存空间:int*pint = new int(1024); delete pint;int*...原创 2019-07-30 23:34:42 · 163 阅读 · 0 评论 -
【LeetCode】17.贪心(455)
0.题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。实例如下1.题目分析...原创 2019-07-28 14:43:21 · 134 阅读 · 0 评论 -
【LeetCode】20.字符串(242)
0.题目分析原创 2019-08-06 10:25:57 · 164 阅读 · 0 评论 -
【LeetCode】21.栈和队列(242)
目录0.题目描述1.题目分析2.补充:在python中实现栈0.题目描述使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。1.题目分析首先说明一下栈的常用操作,C++里,如stack s 可以初始化一个栈:s.empty(); ...原创 2019-08-06 12:17:43 · 186 阅读 · 0 评论 -
【LeetCode】22.最长回文串(409)
0.题目描述给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。!1.题目分析我是利用统计每个字符出现的次数来判断最大回文串,我们利用字典来统计每个字符出现的次数,下面分为几个情况:(1)假如字符a出现的次数为偶数,则将它全部放入回文串(2)假如字符a出现的次数为奇数,则将它减1之后放入...原创 2019-08-06 22:23:50 · 175 阅读 · 0 评论 -
【LeetCode】11.搜索插入位置
0.题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。1.解法1这道题比较简单,我们先考虑特殊情况:(1)如果数组为空,那么返回0。(2)如果target比Nums[0]小,那么返回0,如果target比(3)如果target比nums的最后一个数大,那么返回n...原创 2019-02-23 20:22:50 · 119 阅读 · 0 评论 -
【LeetCode】10.实现strStr()
0.题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。1.题目分析首先我们来看平凡的情况。我这里分以下几个情况:(1)haystack为空,needle不为空。处理:返回-1。(2)haystack为...原创 2019-01-09 23:29:45 · 179 阅读 · 0 评论 -
【LeetCode】1.两数之和
0.题目分析这道题目要求给定一个整数数组 nums 和一个目标值 target,在该数组中找出和为目标值的 两个 整数。可以假设每种输入只会对应一个答案。但是,不能重复利用这个数组中同样的元素。比如:看到题目,首先想到的是暴力搜索法。1.暴力解法class Solution {public: vector<int> twoSum(vector&l...原创 2018-12-04 10:34:44 · 247 阅读 · 0 评论 -
【LeetCode】2.整数反转
0.题目给出一个 32 位的有符号整数,将这个整数中每位上的数字进行反转。 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。1.解法一 先将x每一位拿出来再计算分析:我拿到题目想到的是先将拿到的数字取余后push进一个...原创 2018-12-05 11:34:30 · 129 阅读 · 0 评论 -
【LeetCode】5.最长公共前缀
0.题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 1.题目分析拿到这道题首先考虑平凡的情况,一个是当vector里只有一个字符串,那么就返回这个字符串,然后第2种情况是vector为空,那么返回的也是空,然后第三种情况我们才接下来继续考虑。想到的是依次遍历,但是第一层遍历次数是多少?我的解法是先把字符串vector里的最短的...原创 2018-12-19 16:14:50 · 136 阅读 · 0 评论 -
【LeetCode】4.罗马数字转整数
0.题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等...原创 2018-12-15 13:47:42 · 294 阅读 · 0 评论 -
【LeetCode】7.合并两个有序链表以及链表简介
0.题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。1.链表简介(1) 如图, 链表是一种非常常用的数据结构 链表头:指向第一个链表结点的指针 链表结点:链表中的每一个元素,包括:(1)当前结点的数据,(2)下一个结点的地址 链表尾:不再指向其他结点的结点...原创 2018-12-26 19:55:14 · 116 阅读 · 0 评论 -
【LeetCode】6.有效的括号
0.题目描述给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。举例: 1.题目分析拿到这道题首先想到的是利用栈,这也是括号问题的经典解法。思路是:(0).若字符串为空,返回true...原创 2018-12-21 16:41:05 · 130 阅读 · 0 评论 -
【LeetCode】3.回文数
0.题目分析判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。首先可以分析如果这个数是负数,肯定不是回文数。1.方法一 先将整数反转再判断首先想到的思路是将第2道题的整数反转方法先用于整数反转,然后再判断反转前后两数字是否相同。代码比较简单,如下:class Solution {public: bool isPalind...原创 2018-12-12 13:34:43 · 450 阅读 · 0 评论 -
【LeetCode】9.移除元素
0.题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 1.解法一:使用迭代器此种方法简单明了,迭代器遍历,遇到相等的元素便删除,迭代器使用方法代码:...原创 2019-01-05 22:57:28 · 144 阅读 · 0 评论 -
【LeetCode】8.删除排序数组中的重复项
0.题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。1.解法一首先考虑平凡的情况,输入数组为空数组或只有一个元素时,输出原数组,返回值为原数组长度。因为数组是有序数组,所以我们从前往后遍历,若前后两个数字相同则继续遍历,若前后两...原创 2019-01-02 10:24:29 · 101 阅读 · 0 评论 -
【LeetCode】23.二叉树集合
1.二叉树的前序遍历迭代版:大概思路:对于二叉树中的任何一个节点而言,它都有两个角色需要扮演,一个是作为值存储的角色(角色1),另一个角色是作为它所带领的子树的一个代表(角色2)。而我们设置的bool变量,就是为了说明我当前拿到的这个节点,应该是以一个值存储的这种角色对待它(True),还是应该以一个子树的代表这种角色对待它(False),如果是前者,那么就简单的将其所存储的值打印出来,如果是...原创 2019-09-01 16:12:32 · 268 阅读 · 0 评论