![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法LeetCode
kangdk
追本溯源
展开
-
241 Different Ways to Add Parentheses
一、题目描述 给定一个数字和操作的字符串,返回通过所有方式组合数字和操作符的计算结果。有效的操作符为“++”“−-”和“∗*”。 示例1: 输入:"2−1−1""2-1-1" ((2−1)−1)=0((2-1)-1)=0 (2−(1−1))=2(2-(1-1))=2 输出:[0,2][0,2] 示例2: 输入:"2∗3−4∗5""2*3-4*5"原创 2017-03-03 16:19:12 · 293 阅读 · 0 评论 -
303. Range Sum Query - Immutable
一、题目简述给定一个数组nums,计算下标在i,j(i≤ji\leq j)之间的元素之和。 示例:Given nums = [-2, 0, 3, -5, 2, -1]sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3注意:假设数组不会改变;需要调用sumRange函数多次。二、编程思路给定数组nums,求下标在i,原创 2017-04-16 17:17:43 · 377 阅读 · 0 评论 -
198. House Robber
一、题目简述假设你是一位职业抢劫者,需要规划一条街的抢劫方法。每个房间都藏有一定数量的钱,抢劫的唯一约束是,相邻房间之间有安全系统连接,如果同晚相邻的房间被抢,安全系统将会自动报警。 给定一列非负整数表示每间房的钱数,计算在不触发安全系统的条件下,你能够抢到的最多钱数。 函数原型: int rob(vector<int>& nums)二、编程思路本题目编程思路较为明确,使用动态规划计算所能抢到原创 2017-04-17 10:48:16 · 372 阅读 · 0 评论 -
70. Climbing Stairs
一、题目简述假设你在爬楼梯,需要n步才能到达顶部。 你每次可以爬1或2个台阶,求爬到楼顶所有方法的数量。 注意:给定的n是一个正整数。二、编程思路本题目可以使用动态规划的思路进行求解。 寻找状态:令dp[i]表示爬到第i个台阶时所有可能的方法总数。 确定状态转移方程: dp[0]=1;dp[0]=1;dp[1]=1;dp[1]=1;dp[i]=dp[i−1]+dp[i−2];原创 2017-04-23 09:47:51 · 179 阅读 · 0 评论 -
375. Guess Number Higher or Lower II
一、题目大意我们在玩一个猜数字的游戏,游戏规则如下: 我从1到n选择一个数字,你来猜我选择的数字。 每次你猜错,我都会告诉真实值是偏大还是偏小。 然而,当你猜了一个数字x,并且猜错的时候,你必须支付$x给我,当你猜到我选择的数字时,你就可以赢得比赛。 例如: n=10,我选择了8 第一轮:你猜5,我告诉你真实值大于该值,你支付$5; 第二轮:你猜7,我告诉你真实值大于该值原创 2017-04-23 17:34:40 · 478 阅读 · 0 评论 -
486. Predict the Winner
一、题目简述给定一个非负元素的数组,玩家1从该数组的两端选取一个数字,玩家2之后从剩余的数组两端选取,玩家1之后进行相同操作。玩家每次选择的数字在下一轮将不能继续使用。游戏结束直到所有的数字被取完。取得数字之和最大的玩家获胜。对于给定数组,判断玩家1能否获胜,假设每个玩家都以能够获得最大成绩的方式取数。例1:输入:[1, 5, 2]输出: False解释:第一轮玩家1可以选择1或2。无论玩家1原创 2017-05-07 20:29:18 · 249 阅读 · 0 评论 -
413. Arithmetic Slices
一、题目简述一个序列被称为是算术的,如果它至少包含三个元素,并且序列中任意两个相邻元素之差相同。 例如,以下序列是算术的: 1, 3, 5, 7, 9 7, 7, 7, 7 3, -1, -5, -9以下序列不是算术的: 1, 1, 2, 5, 7一个下标从零开始的数组A包含N个元素。使用整数对(P,Q),0≤P<Q<N0\leq P<Q<N,来表示数组的一个片段。数组的一原创 2017-05-08 10:49:08 · 263 阅读 · 0 评论 -
126. Word Ladder I & II
一、题目简述给定两个单词(beginWord和endWord),和一个单词字典,找到所有从beginWord到endWord的最短转换,使得:每次只能改变一个字母;每个转换单词都必须在单词字典中,注意到,beginWord不是一个转换单词。例如, 给定: beginWord=“hit” endWord=“cog” wordList=[“hot”,”dot”,”dog”,”lot”,”l原创 2017-05-28 19:27:13 · 664 阅读 · 0 评论 -
417. Pacific Atlantic Water Flow
一、题目简述给定一个m*n的非负矩阵代表大陆中每个单元格的高度,太平洋与矩阵的左、上边相邻,大西洋与矩阵的右、下边相邻。 水流只能沿着四个方向进行流动(上、下、左、右),从一个较高的单元格流向较低或等高的单元格。 寻找既能流到大西洋又能流到太平洋的单元格的坐标。 注意:返回单元格坐标的顺序不影响答案的正确性。m与n均小于150。例如: Given the following 5x5 m原创 2017-05-14 14:10:34 · 294 阅读 · 0 评论 -
537. Complex Number Multiplication
一、题目描述给定两个表示复数的字符串。返回它们乘积的字符串,注意根据定义i2=−1i^2=-1。例1:Input: "1+1i", "1+1i"Output: "0+2i"Explanation: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i, and you need convert it to the form of 0+2i.例2:Input: "1+-1原创 2017-06-18 12:22:38 · 261 阅读 · 0 评论 -
494. Target Sum
一、题目简述给定非负整数序列,a1,a2,...,ana_1,a_2,...,a_n和一个目标数SS,现在你有两种符号++、−-,对于每个整数,可以选择正号或符号作为新的符号。 找出和为目标数S的符号组合方式的种数。 示例1:输入: nums is [1, 1, 1, 1, 1], S is 3. 输出: 5 解释: -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +原创 2017-04-16 13:04:00 · 536 阅读 · 0 评论 -
523. Continuous Subarray Sum
一、题目简述给定一个非负数组和目标整数K,写一个函数以检测给定数组中是否有一个长度至少为2的连续子序列,使得其和能够被K整除,即,其和为n∗K,n∈Zn*K,n\in Z。示例1 Input:[23,2,4,6,7],k=6[23, 2, 4, 6, 7], k=6 Output: TrueTrue Explanation: Because [2,4][2, 4] is a continuo原创 2017-04-15 11:34:10 · 1109 阅读 · 0 评论 -
121. Best Time to Buy and Sell Stock
一、题目概述给定一个数组,其中第i个元素代表第i天股票的价格。 如果你最多被允许完成一次交易(即,购买并抛售一份股票),设计一种算法寻找最大利润。示例1: Input: [7, 1, 5, 3, 6, 4] Output: 5 最大差值为6-1=5,(而非7-1=6,因为卖出价格需要高于买入价格) 示例2: Input: [7, 6, 4, 3, 1] Output: 0 此种原创 2017-04-17 16:47:39 · 256 阅读 · 0 评论 -
461 Hamming Distance
一、题目简述 汉明距离为两个整数之间不同比特数的位数。给定两个整数x,yx,y,计算汉明距。 0≤x,y≤2310\leq x,y\leq 2^{31}二、编程思路 比较不同两个整数x,yx,y比特数不同的位数,一种思路可以对其依次右移,比较其最低位是否相同,使用累加器计算相同的位数。 也可以先将x,yx,y进行异或得到zz,则zz二进制串中1的个数即是所求汉明距。从而将问题转原创 2017-02-25 15:13:13 · 281 阅读 · 0 评论 -
215. Kth Largest Element in an Array
一、题目简述 给定一个未排序的序列,找到其第K大的元素。 示例: 给定[3,2,1,5,6,4],k=2,返回5。 注意: 假定K总是有效的,即,1≤k≤lens1\leq k\leq lens 函数原型:int findKthLargest(vector<int>& nums, int k)二、编程思路 本题的编程思路类似归并排序,对于一个序列numsnum原创 2017-03-04 21:41:11 · 197 阅读 · 0 评论 -
240 Search a 2D Matrix II
一、题目简述 使用高效算法搜索m×nm\times n矩阵中是否存在某个数字,且该矩阵存在如下性质: 1. 每行中的数字从左到右依次递增。 2. 每列中的数字从上到下依次递增。 示例:给定如下矩阵, ⎡⎣⎢⎢⎢⎢⎢⎢12310184561321789142311121617261519222430⎤⎦⎥⎥⎥⎥⎥⎥ \begin{bmatrix} 1& 4& 7原创 2017-02-25 16:11:44 · 264 阅读 · 0 评论 -
329. Longest Increasing Path in a Matrix
一、题目简述 给定一个整数矩阵,找到最长递增路径 对于每个元素,可以在四个方向上移动:上下左右,不可以沿对角线方向移动。 例如: nums=⎡⎣⎢962961481⎤⎦⎥nums=\begin{bmatrix}9 & 9 & 4 \\6 & 6 & 8 \\2 & 1 & 1 \\\end{bmatrix} 返回:4,其中最长路径为[1,2,6,9][1,2,原创 2017-03-19 15:47:49 · 294 阅读 · 0 评论 -
207&210. Course Schedule
一、题目简述共有nn门课需要选择,使用0……n−10……n-1进行标记。其中部分课程存在依赖关系,例如课程0必须在修学过课程1的基础上可以上,使用对[0,1][0,1]表示。给定课程数量和依赖关系对,返回完成所有课程的顺序。 存在多种可能的正确顺序,只需返回其中一个即可,如果无法完成所有课程,则返回一个空序列。例如:输入 2,[[1,0]]2,[[1,0]],输出[0,1][0,1] 输入原创 2017-03-19 16:26:43 · 301 阅读 · 0 评论 -
53. Maximum Subarray
一、题目简述 找到数列中连续子串(至少包含一个数字)中和最大的子串。 例如:给定数列[−2,1,−3,4,−1,2,1,−5,4][-2,1,-3,4,-1,2,1,-5,4],连续子串[4,−1,2,1][4,-1,2,1]有最大和6。二、编程思路 对于一个不全为负的数列{a1a2...an}\{a_1 a_2 ... a_n\},其和最大子串{ast...aed}\{a_{st}原创 2017-02-25 15:36:38 · 267 阅读 · 0 评论 -
542. 01 Matrix
一、题目简述给定一个只含0和1的矩阵,找到每个1到0的最短距离。 两个相邻单元格的距离是1 例一: 输入: 000010000\begin{matrix} 0 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \\ \end{matrix} 输出: 000010000\begin{matrix} 0 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \原创 2017-03-25 16:18:02 · 1756 阅读 · 0 评论 -
452. Minimum Number of Arrows to Burst Balloons
一、题目简述在二维平面有一些气球,输入数据是每个气球在水平方向上的起点和终点,假设竖直方向上的空间足够,起点总是小于终点,最多有10410^4个球. 一支箭能够从X轴的不同位置垂直射出。若射出点为x,则满足xstart≤x≤xendx_{start}\leq x\leq x_{end}的气球将会被被射穿。射箭的次数没有限制。一支箭每次能够射穿的气球数没有限制。问射穿所有气球所需要的最少的箭是几支?原创 2017-04-04 11:38:12 · 288 阅读 · 0 评论 -
435. Non-overlapping Intervals
一、题目简述给定一些区间,找到需要移除的最小区间数,以使剩余的区间之间没有重叠。 注意:区间的终点总是大于起点如同[1,2][2,3][1,2] [2,3]这样的区间,虽然边界相连,但不重叠。示例1: 输入:[[1,2],[2,3],[3,4],[1,3]][ [1,2], [2,3], [3,4], [1,3] ] 输出:1 解释:移除区间[1,3][1,3] 示例2: 输入:[原创 2017-04-04 16:03:29 · 314 阅读 · 0 评论 -
538. Convert BST to Greater Tree
一、题目简介给定一颗二叉搜索树(Binary Search Tree,BST),将其转化为一颗更大的树使得原始二叉树的节点值改变为树中所有比其节点值大的节点元素之和。 例如:Input: The root of a Binary Search Tree like this: 5 / \ 2 13原创 2017-06-03 20:53:04 · 293 阅读 · 0 评论