
Leetcode中级算法
文章平均质量分 54
C+G
也就那样
展开
-
堆的运用——有序元素的多路归并topk问题
文章目录题目一:有序矩阵第k小的元素(提炼出做题方法)解题技法解题代码(进阶运用)题目二:查找和最小的K对数字题目解析解题代码题目一:有序矩阵第k小的元素(提炼出做题方法)题目链接解题技法感觉这张图基本就清楚了这题目如何解。具体详解过程请看lc大神:题目详解解题代码class Solution {public: //TODO 多路归并 int kthSmallest(vector<vector<int>>& matrix, int原创 2022-01-14 15:47:28 · 387 阅读 · 0 评论 -
leetcode热题100——单词拆分(dfs记忆化的考察)
文章目录题目题目详解解题代码题目题目链接题目详解看完此题,我们可能很快就会想到回溯的暴力解法,我们通过构建 start ,为取 substr 的开始点,然后每一层 dfs 枚举它的长度即可。具体而言就是下面的代码:sz代表需要拆分的单词总长度,而其中的s就是这个总单词(本代码用的lamda表达式,所以会引入很多外部变量)function<bool(int start)>dfs = [&](int start){ if(start==sz) re原创 2022-01-11 14:22:50 · 320 阅读 · 0 评论 -
dfs回溯暴力处理题——累加数
文章目录题目题目详解解题代码题目题目链接题目详解这题刚开始我也是一脸懵逼,毕竟好久没做题用直接的暴力法了,一时间暴力法都没想出来该怎么做。此时非常想去翻题解,但我最终还是压抑住了这股翻题解的心思,给自己定了个时,20分钟之内还没写出思路来,就翻题解。结果竟然是20min之内写出了做题的大概思路和代码框架。然后就有了本篇题解!首先把题目读懂:题目要求这个字符串必须是从头到尾存在三个数:s1+s2=s3。注意s1、s2、s3的长度并未确定。具体示例:199100199 -> s原创 2022-01-10 16:05:42 · 306 阅读 · 0 评论 -
位运算规律——格雷编码
文章目录题目解题分析解题代码题目解题分析这里挂上原图的b站up主讲解视频链接:视频讲解我觉得应该看这张图,然后就能了解其中的规律了吧。解题代码class Solution {public: vector<int> grayCode(int n) { vector<int> ret; ret.reserve(1 << n); //TODO 提前分配好底层的内存为 2^n 个 ret.push原创 2022-01-09 23:23:00 · 333 阅读 · 0 评论 -
将路径字符串转真实绝对路径(双端队列的运用)——71. 简化路径
文章目录题目题目详解解题代码题目OJ平台题目详解题意:外界传过来一个unix风格代表路径的字符串,我们需要改为真实的路径字符串。具体而言就是需要把 / 内的 .. 或者 . 转为它的具体作用->回到上一级和保持当前目录。题目还规定了多个 / 代表的始终是一个 / 的效果,而两个以上的 . 就是普通的路径名字了。根据题意,我们可以把真实路径获取转化为一个入栈的过程,而遇到 .. 就出栈,遇到 . 则原地不动,其他情况入栈即可。最后再从头到尾用 / 相连成串。解题代码class Solut原创 2022-01-06 22:15:18 · 856 阅读 · 0 评论 -
堆在贪心中的运用题汇总
文章目录题目一题目解析解题代码题目二解题思路解题代码题目三解法一:堆+集合解法二:动态规划==找规律解决题目一OJ平台题目解析题目给出的数据是每天生产出来的苹果数量,以及该苹果对应的过期时间,而题目通过限制每天只能吃一个苹果。最后问最多能吃多少个苹果?很明显,这是一道模拟题,我们模拟从第0天到最后,每天吃一个苹果能延续到第几天,就是能吃多少个苹果。我们如何模拟呢?我们需要维护一个二元关系的元素->[过期时间,苹果数量],由于是根据时间来遍历,所以过期时间我们可以正常的算出来,而且也很原创 2021-12-24 23:54:26 · 211 阅读 · 0 评论 -
平安夜关于苹果的题目——1705. 吃苹果的最大数目
文章目录题目题目解析解题代码题目OJ平台题目解析题目给出的数据是每天生产出来的苹果数量,以及该苹果对应的过期时间,而题目通过限制每天只能吃一个苹果。最后问最多能吃多少个苹果?很明显,这是一道模拟题,我们模拟从第0天到最后,每天吃一个苹果能延续到第几天,就是能吃多少个苹果。我们如何模拟呢?我们需要维护一个二元关系的元素->[过期时间,苹果数量],由于是根据时间来遍历,所以过期时间我们可以正常的算出来,而且也很好判断是否过期。这个时候取苹果就是根据这个过期时间的远近来取的,这也是这题贪心原创 2021-12-24 23:51:19 · 1086 阅读 · 0 评论 -
后序遍历的优秀例题——851. 喧闹和富有
文章目录题目题目解析解题代码前序+记录后序遍历题目OJ平台题目解析这题实际上就是一个图的遍历,以下是输入示例对应的图形:由于我们需要找到比某个编号有钱且安静值最小的,根据图形我们可以看出,在 0 结点之下的根节点都要比 0 有钱,我们只需要通过 dfs 遍历这颗树即可更新答案,但是会出现一个问题:如果使用的是前序的遍历则需要增加很多变量进行记录状态,且无法对这一次遍历走过的路径进行更新。如何解决?使用后序遍历即可,因为后序则相当于直接算出了所有子树的答案,然后再更新根节点,这样做正好符合本原创 2021-12-15 18:47:40 · 1235 阅读 · 0 评论 -
间接的快速幂——372. 超级次方
文章目录题目手写题解解题代码题目OJ平台手写题解解题代码class Solution { const int MOD = 1337; int pow(int x, int n) { int res = 1; while (n) { if (n % 2) { res = (long) res * x % MOD; } x = (long) x原创 2021-12-05 18:52:52 · 280 阅读 · 0 评论 -
三步走的数位查找题——400. 第 N 位数字
文章目录题目题目详解代码详解题目OJ平台题目详解跟着这三步走准没错!which number range(确定在几位数中取)which number (确定是哪个数)which bit (确定是这个数的哪一位)代码详解看代码+注释应该就懂了/*三步走:1.which number range2.which number 3.which bit*/ typedef long long ll;int findNthDigit(int n){原创 2021-11-30 15:48:32 · 123 阅读 · 0 评论 -
滑动窗口经典例题之一——438. 找到字符串中所有字母异位词
文章目录题目题目解析解题代码题目OJ平台题目解析一般滑动窗口问题也不多,LeetCode上能列举出来的例题似乎就这么多:最小覆盖子串字符串排列(今天这题)找所有字母异位词最长无重复子串而这些题的解题代码和思路几乎没有太大区别,就是以下这个套路:void slidingWindow(string s,string t){unordered_map<char,int> need,window; for(char c:t)need[c]++;//更新需要的字符情况int原创 2021-11-28 15:33:03 · 266 阅读 · 0 评论 -
解方程——423. 从英文中重建数字
文章目录题目解题过程解题代码题目OJ平台解题过程我们现在是确定了这个肯定是有解的,但就是不清楚具体是哪些数字,所以可根据每个数字的英文,看看哪些字符对应着哪些数字,然后根据一些特定的字符确定某个数字,比如只有 8 eight 含有 g ,所以可以直接确定它的数目。以此类推,得出多个方程组,进行求解!比如运行下面的代码便可得出字符和数字的对应关系: string nums[10] = {"zero", "one", "two", "three", "four", "five", "si原创 2021-11-24 13:35:54 · 328 阅读 · 0 评论 -
(递归记忆化)最好与最坏的选择——375. 猜数字大小 II
文章目录题目题目解析解题代码题目OJ平台题目解析刚开始看到这个给出的示例图,我还以为就是二分的分治。。。后面看了题解,发现是一个 爆搜+记忆化 的过程,关于如何去爆搜呢?确保获胜的最小现金数?确保获胜代表这个选择次数不能够是最优,因为如果这样的话,那完全就可以选择一次就猜中,就这就不算是确保获胜了。我们需要模拟一个过程,这个过程就是你每次的猜测,只要有可能出错,则让他出错(然后就交现金了),直到出现必然获胜的时候,则得出所耗费的现金情况。也就是确保获胜导致的最终结果就是必定获胜的情况下(往原创 2021-11-13 15:29:03 · 763 阅读 · 0 评论 -
完全二叉树编号关于位运算的规律题——222. 完全二叉树的节点个数
文章目录题目解题分析解题代码题目OJ平台解题分析如果仅仅不去利用性质做题的话,很简单!具体实现没啥好说的。int countNodes(struct TreeNode* root){ if(!root)return 0; return countNodes(root->left)+countNodes(root->right)+1;}利用完全二叉树的性质这题实在太妙了,将位运算和完全二叉树完美结合根据完全二叉树的性质,确认出该完全二叉树可能的原创 2021-11-09 18:21:01 · 513 阅读 · 0 评论 -
leetcode打卡——等差数列题目(LIS变式)——1218. 最长定差子序列
文章目录题目解题分析解题代码最终解题代码题目解题分析很明显,可以直接dp解决,这个类似于LIS的dp方式,但是这样的话时间复杂度是O(N^2),你会发现这是会超时的!注意与LIS的不同点:LIS是最长递增子序列,而此题是给出等差数列的公差后,求出最长等差子序列,不同之处在哪?对于LIS:很明显一个是递增一个是等差,LIS的话判断标准随时在变化,具体来说就是组成这个序列的高矮参差不齐,这导致即便可能因为前面一个序列的高个子拦住,但是还能继承这个序列的矮个子,也就是离你最近的比当前数字小的元素原创 2021-11-05 16:43:50 · 239 阅读 · 0 评论 -
leetcode打卡——1584. 连接所有点的最小费用
文章目录题目题目解析解题代码朴素Prim算法优先队列Prim算法Kruskal算法题目OJ平台题目解析很明显的最小生成树问题,直接用Prim算法或者Kruskal算法即可!解题代码朴素Prim算法class Solution {public:// 基本版本的Prim算法vector<int>path;vector<int>cost;int res; int get_cost(vector<int>&p1,vector<i原创 2021-11-02 14:56:05 · 120 阅读 · 0 评论 -
leetcode打卡--301. 删除无效的括号(预处理的暴力枚举)
题目OJ平台解题思路这题就是考察普通的暴力枚举得出答案。但问题是如何暴力枚举才能得出答案?我们经过以下步骤便可完成解题:预处理得出需要删除的左括号和右括号个数。用dfs或者bfs进行每一步的删除枚举。(注意可以进行剪枝–每次如果出现相邻的相同字符,删除哪个得到的字符串都是一样的,所以可以continue)解题代码C++解决class Solution {public: vector<string>res; //最开始的l,r表示我们需要删除多少左括号和.原创 2021-10-27 23:13:37 · 131 阅读 · 0 评论 -
leetcode打卡--moore投票法的运用详解
文章目录题目摩尔投票概述解题过程解题代码哈希表法摩尔投票法题目摩尔投票概述摩尔投票需要经过以下两个阶段:抵消阶段计数阶段抵消阶段:两个不同投票进行对坑,并且同时抵消掉各一张票,如果两个投票相同,则累加可抵消的次数。计数阶段:在抵消阶段最后得到的抵消计数只要不为 0,那这个候选人是有可能超过一半的票数的,为了验证,则需要遍历一次,统计票数,才可确定。举个例子:在任意多的候选人中,选出票数超过⌊ 1/3 ⌋的候选人。我们可以这样理解,假设投票是这样的 [A, B, C, A, A, B,原创 2021-10-22 19:40:15 · 334 阅读 · 0 评论 -
leetcode打卡--数据结构设计-添加于搜索单词(字典树--Trie)
文章目录题目题目解析解题代码方法一:链式动态Trie实现方法二:二维数组实现静态Trie题目题目描述:请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。实现词典类 WordDictionary :WordDictionary()初始化词典对象void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配bool search(word) 如果数据结构中存在字符串与 word 匹配,则返回 true ;否则,返回 fals原创 2021-10-19 21:19:15 · 188 阅读 · 0 评论 -
leetcode打卡--230. 二叉搜索树中第K小的元素
文章目录题目题目解析解体代码方法一:简单迭代方法二:记录size的结点方法三:转AVLTree题目题目描述给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。示例1:示例2:题目解析由于是二叉搜索树,所以可以利用它的性质,直接得出中序遍历的按序元素的第k个即可,当然也可以用栈模拟迭代得出。如果面试官加大难度,增加为以下两种拓展,你该怎么办?如果你需要频繁地查找第 k 小的值,你将如何优化算法?如果二叉搜索树经原创 2021-10-17 18:01:19 · 185 阅读 · 0 评论 -
leetcode打卡--282. 给表达式添加运算符【关于回溯的模拟题】
文章目录题目题目解析解题代码题目题目描述给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 二元 运算符(不是一元)+、- 或 * ,返回所有能够得到目标值的表达式。示例1:示例2:示例3:示例4:示例5:题目解析题目描述很简单,就是给出一个字符串,和一个需要的值,给字符串固定位置添加运算符得出表达式,如果表达式的结果是给出的值,就加入答案,要求出所有这样的字符串。我们很快想到用回溯的方式,每一层枚举计算的式子的每一原创 2021-10-17 00:27:26 · 277 阅读 · 0 评论 -
leetcode打卡--面试题 04.06. 后继者
文章目录题目题目解析迭代法递归法应用范围题目题目描述:设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。注意:如果指定节点没有对应的“下一个”节点,则返回null。示例 1:示例2:题目解析就是找出二叉搜索树中序遍历情况下的下一个结点。迭代法思路:共分为两种情况如果该结点有右子树,则右子树中最小的结点就是下一个中序遍历的结点(由于中序遍历的顺序是从小到大有序的)。如果该结点没有右子树,则从跟结点往下走,求出这条路径下的大于该结点的值的最小值。原创 2021-10-11 22:59:32 · 266 阅读 · 0 评论 -
超级洗衣机--关于求最小值对应的最大值贪心
题目oj平台解析乍一看毫无头绪实际这一类均匀分配的问题,都还得用贪心思路来解。解题思路: 有四个洗衣机,装的衣服数为 [0, 0, 11, 5] ,最终的状态会变为 [4, 4, 4, 4] ,那么我们将二者做差,得到[-4, -4, 7, 1],这里负数表示当前洗衣机还需要的衣服数,正数表示当前洗衣机多余的衣服数。我们要做的是要将这个差值数组每一项都变为0,对于第一个洗衣机来说,需要四件衣服可以从第二个洗衣机获得,那么就可以 把-4移给二号洗衣机,那么差值数组变为 [0, -8, 7, 1.原创 2021-09-29 14:04:27 · 149 阅读 · 0 评论 -
路径总和III---双dfs/哈希表记录二叉树前缀和
文章目录题目题目解析解题代码题目OJ平台题目解析关于深搜方式:我们由于是要找路径,我们直接通过一个dfs用于求路径总和,而另一个递归用于枚举所有的起点(根节点)。关于前缀和方式:一般来说二叉树的前缀和用哈希表记录下来,为了确保记录的是同一条路径下的前缀和,所以需要对它进行回溯处理,也就是在求完这条路径后把它对应的哈希表的值进行 -- 。解题代码双深搜/** * Definition for a binary tree node. * struct TreeNode { *原创 2021-09-28 09:42:03 · 304 阅读 · 0 评论 -
通过删除的最小次数得出两个相同的字符串--LCS变式题
文章目录题目解题说明解题代码题目OJ平台解题说明给定两个字符串 word1 和 word2 ,分别删除若干字符之后使得两个字符串相同,则剩下的字符为两个字符串的公共子序列。为了使删除操作的次数最少,剩下的字符应尽可能多。当剩下的字符为两个字符串的最长公共子序列时,删除操作的次数最少。解题代码标准LCS解题代码class Solution {public: int minDistance(string word1, string word2) { const i原创 2021-09-25 13:09:32 · 413 阅读 · 0 评论 -
深搜+栈==实现扁平化多级双向链表
文章目录题目解题概述解题代码题目OJ平台解题概述看了这个扁平化实现的简介,第一时间就能想到用深搜,但注意还要实现对尾部连接,这个我是想到用栈存储然后再处理的方式,官方题解就是一次递归就解决了。解题代码//一看就老深搜了class Solution {public: stack<Node*>St; //用栈记录下没有被处理的结点 Node* rear = nullptr; //记录尾指针 Node* flatten(Node* head) {原创 2021-09-24 15:33:04 · 125 阅读 · 0 评论 -
分隔链表--均分链表指针返回
文章目录题目解题分析解题代码题目OJ平台解题分析均分,再均分就行。拓展:可以用数组记录每个链表的指针,然后能够快速进行操作。解题代码我的蹩脚代码class Solution {public: vector<ListNode*> splitListToParts(ListNode* head, int k) { int n = count(head); int c = n/k; int remainder = n%k;原创 2021-09-22 11:30:25 · 142 阅读 · 0 评论 -
PAT甲级--Insertion or Heap Sort
文章目录题目题目大意解题代码拆解关键的判断函数堆排序和插入排序插入排序堆排序整合代码进行提交更多PAT甲级题解尽在我的个人博客–acking-you.github.io题目OJ平台题目大意有很多题目实际不需要看懂题目,只需要看懂输入和输出,比如这题。此题虽然题目较为学术,且比较长,实际总结下来就是,通过给你一个原数组序列,还有一个用插入排序或者是堆排序排了几轮的数组序列,你要根据这个序列判断所使用的排序方式,并且再以该排序方式往下排一轮。解题代码拆解这次由于我使用的接口化函数设原创 2021-09-21 00:52:44 · 225 阅读 · 0 评论 -
最长递增子序列的个数--了解两种实现LIS算法的区别
文章目录题目题目解析解题代码题目oj平台题目解析说说我的心得吧。。原本LIS的两种实现我是炉火纯青的,我一直想用二分的那个方法去dp得出最长递增子序列个数-----然后就折腾了一下午也没弄出来!(所以这里不会这种方法!)但凡用两个for循环的那种方式更新dp也不至于这样????,由于两个for循环的 dp[i] 表示以 i 下标结尾的最长递增子序列长度,而不是 0~i 中所有递增子序列的最长长度。利用这个dp性质我们可很快构建出 cnt[i] 表示以 i 结尾最长递增子序列原创 2021-09-20 17:54:39 · 143 阅读 · 0 评论 -
只有两个键的键盘--根据因数判断的DP
文章目录题目题目解析解题代码题目OJ平台题目解析我开始做题的第一步就是通过纸笔把这个过程给模拟出来,然后我们发现,这很像bfs的过程,可以通过bfs进行模拟得出结果,但这样效率很低!动态规划详解:设 f[i] 表示打印出 i 个 A 的最少操作次数。由于我们只能使用「复制全部」和「粘贴」两种操作,那么要想得到 i 个 A ,我们必须首先拥有 j 个 A ,使用一次「复制全部」操作,再使用若干次「粘贴」操作得到 i 个 A 。因此,这里的 j 必须是 i 的因数,「粘贴」操作的使用次原创 2021-09-19 14:35:27 · 100 阅读 · 0 评论 -
寻找峰值--学会处理越界问题
文章目录题目解题代码题目OJ平台解题代码啥也不用说,就是二分秒杀C++实现class Solution {public: int findPeakElement(vector<int>& nums) { int n = nums.size(); int l = 0,r = n-1;//为了不让mid+1越界,r取n-1 while(l<r){ // 由于当l==r时答案肯定找到了 i原创 2021-09-15 14:22:47 · 119 阅读 · 0 评论 -
通过删除字母匹配到字典里最长单词--双指针or自动机预处理?
文章目录题目解题思路代码题目OJ平台解题思路只要排好序后,后面的过程就是搜索某个字符串是否属于s的子序列。最直接的方式搜索某个字符串是否是s的子序列的方式就是通过双指针。可以通过数组对s字符串预处理得出它的下标数组,之后根据下标数组快速判断。代码双指针方式class Solution {public: string findLongestWord(string s, vector<string>& dictionary) { s原创 2021-09-14 16:57:22 · 93 阅读 · 0 评论 -
哈希表的应用--回旋镖的数量
文章目录题目题目解析代码实现我的实现--二维数组+哈希表+An2官方实现--哈希表+An2题目OJ平台题目解析基本思路:任意两个点的距离,用二维数组存储。根据每次外层循环选中的序号构建关于该序号的回旋镖,用哈希表存储到达该点的距离次数。注意每轮重新清空哈希表。根据An2求出每轮的答案相加即可。可用于把第一步优化掉,直接用两层循环记录任意两点的距离,哈希表直接存值即可。代码实现我的实现–二维数组+哈希表+An2class Solution {public:原创 2021-09-13 19:38:25 · 106 阅读 · 0 评论 -
leetcode每日一题--有效括号的字符串匹配(双栈模拟)
文章目录题目题目解析解题代码题目OJ平台题目解析简单的双栈模拟,这题与普通的一个栈的模拟就多了一个 ‘*’ 通配符,这个可以用来抵消 ‘(’ 或者 ')' ,但是注意到的是 抵消 ‘(’ 时需要判断通配符的位置是否在它的前面,这个时候就可以用栈来存储了。解题代码class Solution {public: bool checkValidString(string s) { vector<int>St; vector<int&g原创 2021-09-12 14:20:10 · 168 阅读 · 0 评论 -
不连续1的非负整数--我只会无脑的数位dp
文章目录题目简单解题步骤代码详解题目OJ平台简单解题步骤三步走:转二进制序列dfs搜索记忆化代码详解class Solution {public: //s用于转二进制序列,sz存长度,memo用于记忆化 string s; int sz; int memo[2][100]; //将n转为二进制str,顺便进行一些数据的初始化 void handle(int n) { while (n) { i原创 2021-09-11 12:22:41 · 91 阅读 · 0 评论 -
leetcode教师节特典--找到需要补充粉笔的学生编号
文章目录题目题目解析解题代码我的个人小站:acking-you.github.io题目OJ平台题目解析实际上就是一个前缀和+二分的处理,我一旦爆出前缀和+二分,应该就都有思路了!解题代码这里偷懒使用了STL,当然也可自己去写二分。class Solution {public:using ll = long long; int chalkReplacer(vector<int>& chalk, int k) { int n = chalk原创 2021-09-10 14:22:46 · 106 阅读 · 0 评论 -
比较版本号--split方法的运用 和 双指针的运用
文章目录题目方法一:split方法的运用方法二:双指针的运用题目oj平台方法一:split方法的运用欺负我C++没有split方法是吧,那就只能自己写了相应的功能实现了。。C++代码class Solution {public: int compareVersion(string version1, string version2) { vector<int>v1,v2; //预处理,把字符串根据'.'分割,然后单独得出int结果存入原创 2021-09-01 14:43:46 · 146 阅读 · 0 评论 -
航班预订统计--差分数组解决
文章目录题目题目解析解题代码题目oj平台题目解析这题拿到后,我们很快想到可以直接暴力累加,而这道题难度是中等,按LC这尿性,难度中等的怎么可能给你这么简单就过去了,事实也是确实如此,然后我看了看评论区,看到了差分二字,瞬间想到曾经做过一道差分的题目:检查区域是否被覆盖看完之前做过的题目的文章后,瞬间就有了思路,这不就差分吗,会写后就很简单,只要构建好整个区间内的左右值,就能通过在外面循环一次得到累加结果。解题代码C++代码class Solution {public: v原创 2021-08-31 20:43:34 · 118 阅读 · 0 评论 -
按权重随机选择--计算机系统调度策略之一:前缀和+二分
文章目录题目对按权重的随机选择分析操作系统对该算法调度的应用实例解题代码题目OJ平台对按权重的随机选择分析由于需要保证选择某个物品按照其对应的权重概率进行选择,那么这个问题如何解决呢?我们把每个物体所占的权重按照长度进行处理,比如有 下标 0 的权重为 3 , 1 的为 1 ,2 的为 2。则他们的概率依次为 3/6、1/6、2/6。而我们的计算机语言中一般会有一个 rand() 函数用于产生随机的整数,对于这个例子我们只要让它这个随机整数的产生范围控制在 [1,6] 之间就行,用 ran原创 2021-08-30 16:57:47 · 422 阅读 · 0 评论 -
所有奇数长度子数组的和--O(n)数学法
文章目录题目解题思路解题代码题目oj平台解题思路手写过程分析解题代码class Solution {public: int sumOddLengthSubarrays(vector<int>& arr) { int n=arr.size(); int sum = 0; for(int i=0;i<n;i++){ //得到该位置左右两边元素的长度 int leftCount原创 2021-08-29 17:51:27 · 116 阅读 · 0 评论