
Leetcode
leetcode里刷过的一些题目
阿扬来了
一起加油啊
展开
-
1002——查找常用字符——简单
这道题要找出所有字符串中的交集字母,最简单你也得全部遍历一遍才可以,所以这道题的时间复杂度至少为O(MN),M为字符串个数,N为字符串平均长度。但是除此之外,字母共有26个,所以最小的时间复杂度应为O(M(N+|e|)),|e|为字符个数,此处为26。我们将每个字符串都遍历一遍,并将其中的字母进行计数排序,每遍历完一个字符串后,我们还要去汇总总的26个字母目前分别出现的最小次数。当字符串全部遍历完成后,根据26个字母出现的最小次数,就可以将字母添加进容器中。最后返回容器即可。class Soluti.原创 2021-04-02 17:26:53 · 194 阅读 · 0 评论 -
908——最小差值I——简单
既然是最后要求出新数组B中最大值和最小值的最小差值,那我们就用数组中的最大值减去允许范围内的最大值,最小值加上允许范围内的最大值,只要两者出现交集,那么答案必定为0,否则两者相差即为答案。class Solution {public: int smallestRangeI(vector<int>& A, int K) { int min = A[0], max = A[0], ans; for(int i = 1; i < A.siz..原创 2021-04-02 16:09:15 · 230 阅读 · 0 评论 -
1154——一年中的第几天——简单
这道题完全可以看成是一个简单的加减算术题。只是有两个需要处理的地方:需要把输入的字符串转换成整数形式关于闰年的二月比平年的二月多一天将字符串转换成整数,如果是python的话,直接用int()就好,但是C++只能自己手动转换了,不过过程还是非常简单的。那月份举例:month = (data[i] - '0') * 10 + (date[i+1] - '0')再来分析平闰年,闰年就是可以直接被400整除的年份,或者是可以被4整除但不能被100整除的年份,即 year % 400 == 0 ||..原创 2021-03-30 13:47:51 · 162 阅读 · 0 评论 -
1480——一维数组的动态和——简单
值得注意的是:数组是以vector的形式给出的,所以要求数组动态和,我们首先要知道vector的元素长度有有多少。int size() const:返回向量中元素的个数知道了元素数量,问题就变得非常简单了。class Solution {public: vector<int> runningSum(vector<int>& nums) { int l = nums.size(), sum = 0; for(int i = 0;.原创 2021-03-30 11:24:56 · 107 阅读 · 0 评论 -
leetcode刷题记录
1480——一维数组的动态和——简单原创 2021-03-30 11:17:51 · 82 阅读 · 0 评论 -
Leetcode - 62不同路径
62 不同路径来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/unique-paths著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向...原创 2019-06-16 13:04:15 · 115 阅读 · 0 评论 -
Leetcode - 1两数之和
1 两数之和来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述题目给出的接口为:class Solution {public: vector<int> twoSum(vector<int>& nums,...原创 2019-06-20 15:51:15 · 107 阅读 · 0 评论 -
Leetcode - 3无重复字符的最长子串
3 无重复字符的最长子串来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。题目给出的接口为:clas...原创 2019-06-20 16:31:48 · 85 阅读 · 0 评论 -
Leetcode - 7整数反转
7 整数反转题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。...原创 2019-06-05 00:11:09 · 196 阅读 · 0 评论 -
Leetcode - 236二叉树的最近公共祖先
236 二叉树的最近公共祖先来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = ...原创 2019-06-16 12:31:29 · 145 阅读 · 0 评论 -
Leetcode - 14最长公共前缀
14 最长公共前缀题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。题目给出的接口:class...原创 2019-06-04 09:54:24 · 160 阅读 · 0 评论 -
Leetcode - 89格雷编码
89 格雷编码来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/gray-code著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:...原创 2019-06-09 21:04:11 · 121 阅读 · 0 评论 -
Leetcode - 46全排列
46 全排列来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3...原创 2019-06-09 18:21:39 · 90 阅读 · 0 评论 -
Leetcode - 59螺旋矩阵II
59 螺旋矩阵II来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/spiral-matrix-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[ [ 1, 2, 3 ], ...原创 2019-06-09 17:53:34 · 118 阅读 · 0 评论 -
Leetcode - 78子集
78 子集来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subsets著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [...原创 2019-06-09 17:10:32 · 133 阅读 · 0 评论 -
Leetcode - 230二叉搜索树中第K小的元素
230 二叉搜索树中第K小的元素来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有...原创 2019-06-12 00:55:45 · 160 阅读 · 0 评论 -
Leetcode - 238除自身以外数组的乘积
238 除自身以外数组的乘积来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/product-of-array-except-self著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nu...原创 2019-06-12 01:30:33 · 222 阅读 · 0 评论 -
Leetcode - 17电话号码的字母组合
17 电话号码的字母组合题目描述题目分析先做一个索引表,将0-9的数字与其代表的字母对应起来,然后使用递归。代码如下:class Solution {public: vector<string> letterCombinations(string digits) { vector<string> index = {"", "", "ab...原创 2019-06-29 13:07:47 · 149 阅读 · 0 评论 -
Leetcode - 16最接近的三数之和
16 最接近的三数之和题目描述题目分析求最接近给定值的三数之和,是在之前15 三数之和的基础上又增加了些许难度,让返回这个最接近于给定值的值,即我们要保证当前三数和跟给定值之间的差的绝对值最小,所以我们需要定义一个变量diff用来记录差的绝对值,我们要先将数组排序,然后遍历数组。先确定一个数,然后用两个指针left和right来滑动寻找另外两个数,每确定两个数,我们求出此三数之和,然后算和...原创 2019-06-29 12:58:00 · 156 阅读 · 0 评论 -
Leetcode - 15三数之和
15 三数之和题目描述题目分析利用set的不能包含重复项的特点来防止重复项的产生。代码如下:class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { set<vector<int>> res; ...原创 2019-06-29 12:47:39 · 141 阅读 · 0 评论 -
Leetcode - 13罗马数字转整数
13 罗马数字转整数题目描述题目分析无非是注意如果小数出现在大数前面,要减掉小数即可。代码如下:1、mapclass Solution {public: int romanToInt(string s) { map<char, int> val{{'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',5...原创 2019-06-29 12:40:49 · 171 阅读 · 0 评论 -
Leetcode - 12整数转罗马数字
12 整数转罗马数字题目描述题目分析原创 2019-06-29 12:23:45 · 214 阅读 · 0 评论 -
Leetcode - 6Z字形变换
6 Z字形变换题目描述题目给出的接口:class Solution {public: string convert(string s, int numRows) { }};题目分析代码如下:class Solution {public: string convert(string s, int numRows) { i...原创 2019-06-29 10:20:43 · 149 阅读 · 0 评论 -
Python - 基础讲解(5)
字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:d = {key1 : value1, key2 : value2 }键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。>>>dict = {'a': 1, ...原创 2019-06-27 23:14:20 · 110 阅读 · 0 评论 -
Leetcode - 5最长回文子串
5 最长回文子串题目描述题目给出的接口为:class Solution {public: string longestPalindrome(string s) { }};题目分析定义两个变量 start 和end,分别表示最长回文子串的起点跟长度,在遍历s中的字符的时候,我们首先判断剩余的字符数是否小于等于end 的一半。是的话表明就算从当前到末...原创 2019-06-27 22:02:43 · 86 阅读 · 0 评论 -
Leetcode - 4寻找两个有序数组的中位数 - difficult
4 寻找两个有序数组的中位数题目描述题目给出的接口为:class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int len1 = nums1.size() , l1 =len1 , len...原创 2019-06-24 12:16:46 · 79 阅读 · 0 评论 -
Leetcode - 142 环形链表 II
142 环形链表 II来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中...原创 2019-06-18 15:33:57 · 108 阅读 · 0 评论 -
Leetcode - 8字符串转换整数
8 字符串转换整数题目描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存...原创 2019-06-09 16:08:47 · 94 阅读 · 0 评论 -
Leetcode - 2两数相加
2 两数相加来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会...原创 2019-06-18 22:28:55 · 295 阅读 · 0 评论 -
Leetcode - 169求众数
169 求众数题目描述给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2题目给出的接口为:class Solution {public: int majorityEle...原创 2019-05-17 00:08:54 · 142 阅读 · 0 评论 -
Leetcode - 206反转链表
206 反转链表题目描述反转一个单链表。示例:输入: 1-> 2-> 3-> 4-> 5-> NULL输出: 5-> 4-> 3-> 2-> 1-> NULL进阶:你可以迭代或递归地反转链表你能否用两种方法解决这道题?题目给出的接口是:/** * Definition for singly-linked list. ...原创 2019-05-26 00:58:19 · 138 阅读 · 0 评论 -
Leetcode - 104二叉树的最大深度
l04 二叉树的最大深度题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。题目给出的接口为:/** * Definition for a binary tree node. * struct TreeN...原创 2019-05-12 21:42:58 · 151 阅读 · 0 评论 -
Leetcode - 122买卖股票的最佳时机 II
122 买卖股票的最佳时机II题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票...原创 2019-05-22 01:29:01 · 112 阅读 · 0 评论 -
Leetcode - 237删除链表中的节点
237 删除链表中的节点题目描述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 ...原创 2019-05-12 19:39:38 · 136 阅读 · 0 评论 -
Leetcode - 557反转字符串中的单词III
557反转字符串中的单词III题目描述给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。题目给出的接口为:class Soluti...原创 2019-05-25 01:30:33 · 96 阅读 · 0 评论 -
Leetcode - 9回文数
9 回文数题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文...原创 2019-05-16 01:07:25 · 113 阅读 · 0 评论 -
Leetcode - 21合并两个有序链表
21 合并两个有序链表题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题目给出的接口为:/** * Definition for singly-linked list. * struct Li...原创 2019-05-21 00:42:28 · 120 阅读 · 0 评论 -
Leetcode - 292Nim 游戏
292 Nim 游戏题目描述你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2...原创 2019-05-10 15:05:09 · 131 阅读 · 0 评论 -
Leetcode - 344反转字符串
344 反转字符串题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]...原创 2019-05-10 12:20:39 · 190 阅读 · 0 评论 -
Leetcode - 136只出现一次的数字
136 只出现一次的数字题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4题目给出的接口为:class Solution {public: in...原创 2019-05-14 23:30:13 · 129 阅读 · 0 评论