- 博客(49)
- 收藏
- 关注
原创 【每日一题20201030】剑指offer --- 05.替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."思路一: 注重时间,费空间。class Solution {public: string replaceSpace(string s) { string ans = ""; for(int i = 0; i < s.size(); i++){ if(s[i].
2020-10-30 22:34:23
145
原创 【每日至少一题20201028】剑指offer --- 03.数组中重复的数字
03、找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3思路一:哈希,映射set.时间O(n),空间O(n)class Solution {public: int findRepeatNumber(vector<int>&..
2020-10-28 22:42:21
152
原创 【大数据】Hadoop安装(VMware + 进入BIOS开启Intel VT-x + Ubuntu16.04 + Hadoop2.7.7 + jdk1.8.0)
环境:VMware+Ubuntu16.04+Hadoop2.7.7+jdk1.8.01、超稳进入BIOS,开启虚拟技术,Intel VT-x左下角右键,设置,更新和安全,恢复,立即重新启动。疑难解答,高级选项,UEFI固件设置,重启。即可进入BIOS选择configuration Intel virtual technology 选择Enable。2、新建一个用户sudo useradd –m hadoop –s /bin/bashsudo passwd hadoopsu
2020-09-19 16:04:58
231
原创 【leetcode】周赛200---(1)1534. 统计三元组_3for(2)1535. 数组游戏赢家_队列(3)**1536. 网格最少交换数_3for(4)*1537. 最大得分_双指针_取余
1534、给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。 0 <= i < j < k < arr.length |arr[i] - arr[j]| <= a |arr[j] - arr[k]| <= b |arr[i] - arr[k]| <= c其中 |x| 表示 x ...
2020-08-20 10:01:31
245
原创 【leetcode】dp---中等(1)467. 环绕字符串中唯一的子字符串_dp字符_以26字母建立状态(2)474. 一和零_dp_01双背包(3)486. 预测赢家_dp博弈_A比B多的分数
467、把字符串 s 看作是“abcdefghijklmnopqrstuvwxyz”的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....".现在我们有了另一个字符串 p 。你需要的是找出 s 中有多少个唯一的 p 的非空子串,尤其是当你的输入是字符串 p ,你需要输出字符串 s 中 p 的不同的非空子串的数目。注意: p 仅由小写的英文字母组成,p 的大小可能超过 1000...
2020-08-19 09:53:05
185
原创 【leetcode】dp---中等(1)413. 等差数列划分_dp序列组成(2)**416. 分割等和子集_dp_01背包_or(3)**464. 我能赢吗_dp博弈_状态压缩_minmax
413、如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。如果满足以下条件,则称子数组(P, Q)为等差数组:元素 A[P], A[p + 1], .
2020-08-17 11:00:23
368
原创 【leetcode】dp---中等(1)***375. 猜数字大小 II_dp最差下最优解_min(max())(2)376. 摆动序列_dp分类(3)*377. 组合总和 Ⅳ_dp背包问题集合
375、我们正在玩一个猜数游戏,游戏规则如下:我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字。每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了。然而,当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。直到你猜到我选的数字,你才算赢得了这个游戏。示例:n = 10, 我选择了8.第一轮: 你猜我选择的数字是5,我会告诉你,我的数字更大一些,然后你需要支付5块。第二轮: 你猜是7,我告诉你,我的数字更大一些,你支付7块。第三轮: 你猜是9,我告诉你.
2020-08-14 10:09:01
281
原创 【leetcode】dp---中等(1)343. 整数拆分_dp状态需循环(2)357. 计算各个位数不同的数字个数_dp排列组合(3)**368. 最大整除子集
343、给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 10 输出: 36 解释: 10 = 3 + 3 + 4, 3 ×3 ×4 = 36。状态转移:逐个判断1~i-1中某个因子是否在在i的拆分集合中,dp[i]=max(dp[j]*dp[i-j],j*(i-j),j*dp[i-j],dp[j]*(i-j),dp[i]);// dp[i]:i正数,最大乘积// 状态转移:逐个判断1~i-1中某...
2020-08-13 15:38:25
247
原创 【leetcode】dp---中等(1)*****309. 最佳买卖股票时机含冷冻期_dp股票_买入卖出(2)322. 零钱兑换_dp步长因子_类丑数(3)338. 比特位计数_dp步长
309、给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]结果:...
2020-08-13 10:10:21
128
原创 【leetcode】dp---中等(1)**279. 完全平方数_dp数字序列_类二叉搜索树种数(2)300. 最长上升子序列_dp无序数列求有序(3)304. 二维区域和检索 _dp矩阵和
279、给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 13输出: 2解释: 13 = 4 + 9.// dp[i]:数i需要最少的完全平方数个数。class Solution {public: int numSquares(int n) { vector<int> dp(n + 1, 0); for(int i .
2020-08-12 09:11:08
143
原创 【leetcode】dp---中等(1)213. 打家劫舍 II_dp两种初始(2)**221. 最大正方形_dp三个角最小值(3)**264. 丑数 II_dp多指针标记_序列
213、你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。.
2020-08-11 19:55:09
133
原创 【leetcode】dp---中等(1)120. 三角形最小路径和_dp迷宫(2)139. 单词拆分_dp序列_长度为状态(3)152. 乘积最大子数组_dp序列积_正负
120、给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。dp[i][j]=min(dp[i-1][j],dp[i-1][j-1])+grid[i]// d...
2020-08-11 14:55:51
128
原创 【leetcode】dp---中等(1)64. 最小路径和_dp迷宫(2)91. 解码方法_不定长子串(3)**95. 不同的二叉搜索树 II_dfs返回答案(4)**96. 不同的二叉搜索树_dp
64、给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i][j]// dp[i][j]:到(i,j)最短路劲和// 状态转移:1)左走一步,2)上走一步//...
2020-08-11 09:00:34
143
原创 【leetcode】dp---中等(1)**5. 最长回文子串_dp回文_对长度进行转移(2)62. 不同路径_dp迷宫(3)63. 不同路径 II_dp迷宫_有障碍
5、给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"dp[i][j]=(dp[i+1][j-1])&&(s[i]==s[j]); dp[i][i]=1; dp[i][j]=(s[i]==s[j]);// dp[i][j]:从下标i到下标j的子串,是否...
2020-08-10 14:18:48
172
原创 【leetcode】dp---简单(1)746. 使用最小花费爬楼梯_dp楼梯(2)1025. 除数博弈_dp_数学(3)面试题 08.01. 三步问题
746、数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,然后走两步即可到阶梯顶,一共花费15。示例 2:输入: cost = [1,..
2020-08-10 08:30:27
215
原创 【leetcode】dp---简单(1)198. 打家劫舍_dp类楼梯(2)303. 区域和检索_dp序列_可变范围和(3)392. 判断子序列_双指针
198、你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。...
2020-08-10 08:23:22
145
原创 【leetcode】dp---简单(1)53. 最大子序和_序列和(2)70. 爬楼梯(3)121. 买卖股票的最佳时机_序列两数差_股票1
53、给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。dp[i] = max(dp[i - 1] + nums[i] , nums[i]);// dp[i]: 以i为结尾的序列和的最大值. i:数组下标// 状态转移 :1) i归入前面的序列; 2) i独立开辟新的序列。// dp[i] = ...
2020-08-08 14:09:28
138
原创 【leetcode】周赛199---(1)1528. 重新排列字符串(2)1529. 灯泡开关 IV_开关问题(3)1530. 好叶子节点对的数量_dfs(4)1531. 压缩字符串 II_dp
1528、给你一个字符串 s 和一个 长度相同 的整数数组 indices 。请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。返回重新排列后的字符串。示例 1:输入:s = "codeleet", indices = [4,5,6,7,0,2,1,3]输出:"leetcode"解释:如图所示,"codeleet" 重新排列后变为 "leetcode" 。class Solution {public: string rest.
2020-08-08 10:55:38
325
原创 【leetcode】周赛198---(1)1518. 换酒问题(2)1519. 子树中同标签节点数_dfs(3)1520. 最多的不重叠子字符串_贪心(4)**1521. 位运算
1518、小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。示例 2:输入:numBottles = 15, numExchange = 4输出:19解释:你可以用 4 个空酒瓶兑换 1 瓶酒。所以最多能喝到 15 + 3 + 1 = 19 瓶酒。数学题,主要读懂题目意思class Solution {public: i..
2020-08-07 09:52:13
267
原创 【leetcode】图---中等(1)1361. 验证二叉树_并查集(2)1387. 将整数按权重排序_dfs(3)1462. 课程安排 IV_拓扑排序_floyed
1361、二叉树上有 n 个节点,按从 0 到 n - 1 编号,其中节点 i 的两个子节点分别是 leftChild[i] 和 rightChild[i]。只有 所有 节点能够形成且 只 形成 一颗 有效的二叉树时,返回 true;否则返回 false。如果节点 i 没有左子节点,那么 leftChild[i] 就等于 -1。右子节点也符合该规则。注意:节点没有值,本问题中仅仅使用节点编号。示例 1:输入:n = 4, leftChild = [1,-1,3,-1], righ.
2020-07-31 10:52:18
206
原创 【leetcode】图---中等(1)1267. 统计参与通信的服务器_矩阵图_两次遍历(2)1306. 跳跃游戏 III_一维数组_dfs(3)*1334. 阈值距离内邻居最少的城市_多源最短路径
1267、这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。示例 3:输入:grid = [[1,1,0,0],[0,0,1,0],[0,0,1,0],[0,0,0,1]]输出:4解释:第一行的两台服务器互相通信,第三列的两台服务器互相通信,但右下角的服务器无法与其他服务器通信。.
2020-07-30 16:06:23
302
原创 【leetcode】图---中等(1)**1129. 颜色交替的最短路径_BFS_DFS_形参改值(2)1161. 最大层内元素和_dfs_树高(3)1162. 地图分析_并查集思想
1129、在一个有向图中,节点分别标记为 0, 1, ..., n-1。这个图中的每条边不是红色就是蓝色,且存在自环或平行边。red_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的红色有向边。类似地,blue_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的蓝色有向边。返回长度为 n 的数组 answer,其中 answer[X] 是从节点 0 到节点 X 的最短路径的长度,且路径上红色边和蓝色边交替出现。如果不存在这样的路径,那么 answer[x].
2020-07-28 16:18:49
185
原创 【leetcode】图---中等(1)841. 钥匙和房间_BFS有向图(2)**959. 由斜杠划分区域_建模_并查集(3)990. 等式方程的可满足性_建模_并查集
841、有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,...,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之间来回走动。如果能进入每个.
2020-07-27 14:49:56
234
原创 【leetcode】图---中等(1)743. 网络延迟时间_BFS(2)785. 判断二分图_BFS(3)*802. 找到最终的安全状态_逆向拓扑
743、有 N 个网络节点,标记为 1 到 N。给定一个列表 times,表示信号经过有向边的传递时间。 times[i] = (u, v, w),其中 u 是源节点,v 是目标节点, w 是一个信号从源节点传递到目标节点的时间。现在,我们从某个节点 K 发出一个信号。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回 -1。示例:输入:times = [[2,1,1],[2,3,1],[3,4,1]], N = 4, K = 2输出:2注意: N 的范...
2020-07-27 09:11:54
193
原创 【leetcode】图---中等(1)332. 重新安排行程_欧拉通路_dfs(2)399. 除法求值_dfs,pre,有环图(3)684. 冗余连接_DEADLYSIGNAL_并查集
332、给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 出发。说明: 如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前 所有的机场都用三个大写字母表示(机场代码)。 假定所有机票至少存在一种合理的行...
2020-07-24 14:25:41
188
原创 【leetcode】图---中等(1)133. 克隆图_dfs/map(2)207. 课程表_queue拓扑排序(3)210. 课程表 II_拓扑排序+返回拓扑序列(4)*310. 最小高度树_拓扑
133、给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示。邻...
2020-07-23 10:11:46
148
原创 【leetcode】图---简单(1)997. 找到小镇的法官_出入度(2)1042. 不邻接植花_dfs涂色&判连通分支
997、在一个小镇里,按从 1 到 N 标记了 N 个人。传言称,这些人中有一个是小镇上的秘密法官。如果小镇的法官真的存在,那么: 小镇的法官不相信任何人。 每个人(除了小镇法官外)都信任小镇的法官。 只有一个人同时满足属性 1 和属性 2 。给定数组 trust,该数组由信任对 trust[i] = [a, b] 组成,表示标记为 a 的人信任标记为 b 的人。如果小镇存在秘密法官并且可以确定他的身份,请返回该法官的标记。否则,返回 -1。示例 1:输入:...
2020-07-22 10:10:03
143
原创 【leetcode】周赛197---(1)1512. 好数对的数目(2)1513. 仅含 1 的子串数(3)1514. 概率最大的路径(4)1515. 服务中心的最佳位置
1512、给你一个整数数组 nums 。如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。返回好数对的数目。示例 1:输入:nums = [1,2,3,1,1,3]输出:4解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始map映射每个key对应的个数,用n(n-1)/2得出每个key可能的排列数。class Solution {public:..
2020-07-21 08:46:20
302
原创 【leetcode】周赛196---(1)1502. 能否等差 (2) 1503. 所有蚂蚁掉下来(3)1504. 统计全 1 子矩形dp (4)1505. 最多 K 次交换相邻数--」树状数组!!
1520、给你一个数字数组 arr 。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。示例 1:输入:arr = [3,5,1]输出:true解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。class Solution {public: bool canMakeArithmetic.
2020-07-12 21:24:43
297
原创 【leetcode】周赛195--(1)1496. 判断路径是否相交 (2)1497. 检查数组对是否可以被 k 整除 (3)1498. 满足条件的子序列数目 (4)1499. 满足不等式的最大值pq
1496、给你一个字符串 path,其中 path[i] 的值可以是 'N'、'S'、'E' 或者 'W',分别表示向北、向南、向东、向西移动一个单位。机器人从二维平面上的原点 (0, 0) 处开始出发,按 path 所指示的路径行走。如果路径在任何位置上出现相交的情况,也就是走到之前已经走过的位置,请返回 True ;否则,返回 False 。示例 1:输入:path = "NES"输出:false 解释:该路径没有在任何位置相交。原本想直接用unordered_set..
2020-07-10 21:30:29
322
原创 【leetcode】周赛194---(1)1486. 数组异或操作 (2)1487. 保证文件名唯一 (3)1488. 避免洪水泛滥 (4)1489. 找到最小生成树里的关键边和伪关键边MST
1486、给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。示例 1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。 "^" 为按位异或 XOR 运算符。class Solution...
2020-07-09 20:53:39
310
原创 【leetcode】周赛193---(1)1480.一维数组的动态和 (2)1481. 不同整数的最少数目 (3)1482.制作 m 束花所需的最少天数 (4)1483. 树节点的第 K 个祖先LCA
1480、给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。示例 1:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。class Solution {public: vector<int> runningSum(vector<int>& num.
2020-07-08 20:20:09
203
原创 【leetcode】周赛192---(1)1470. 重新排列数组 (2)1471. 数组中的 k 个最强值 (3)1472. 设计浏览器历史记录 (4)1473、给房子涂色 III3维dp
1470、给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。请你将数组按 [x1,y1,x2,y2,...,xn,yn] 格式重新排列,返回重排后的数组。示例1:输入:nums = [2,5,1,3,4,7], n = 3输出:[2,3,5,4,1,7]解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,1,7]class Solution {p..
2020-07-07 15:28:07
251
原创 【leetcode】周赛191---(1)1464. 数组中两元素的最大乘积(2)1465. 切割后面积最(3)1466. 重新规划路线:bfs (4)1467. 两个盒子中球的颜色数相同的概率:dp
题目一:题目二:题目三:n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以改变交通拥堵的状况。路线用 connections 表示,其中 connections[i] = [a, b] 表示从城市 a 到 b 的一条有向路线。今年,城市 0 将会举办一场大型比赛,很多游客都想前往城市 0 。请你帮助重新规划路线方向,使...
2020-06-13 17:56:48
557
原创 【leetcode】树—简单(100、相同的树 Same Tree)
100、给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true我的思路:用前序遍历两个树,遍历的结果存入vector,比较两次遍历结果是否相同。/** * Definiti...
2020-06-11 20:38:15
139
原创 【leetcode】数组--简单(119、杨辉三角 II Pascal's Triangle II)
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。示例: 输入: 3输出: [1,3,3,1]思想仿照118,创建二维数组,构成边长为rowIndex+1的杨辉三角,最后返回指定行。注意题目给的行数包括0行,不是从1开始。class Solution {public: vector<int> ge...
2020-02-28 14:26:49
137
原创 【leetcode】数组--简单(118、杨辉三角 Pascal's Triangle + 二维vector初始化)
118、给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例:输入: 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1] ]按照题意构建vector二维数组。难点在于,vec[0][0]的构建区别于之后几行的规律。找杨辉三角的规律,逐行求解。(i,j)的值为(i-...
2020-02-27 15:50:26
175
原创 【leetcode】数组--简单(88、合并两个有序数组 Merge Sorted Array + sort函数的使用)
88、给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 =...
2020-02-27 14:52:33
279
原创 【leetcode】数组--简单(66、加一 Plus One + vector.insert(iterator,num) 的理解)
66、给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。ve...
2020-02-26 15:31:04
153
原创 【leetcode】数组--简单(53、最大子序和 Maximum Subarray + 分治算法)
53、给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。...
2020-02-26 14:54:09
151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人