![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 50
Arden Zhao
这个作者很懒,什么都没留下…
展开
-
Day 242/300 数据结构二叉树(13)——树的遍历
树的概述树 是一种经常用到的数据结构,用来模拟具有树状结构性质的数据集合。树里的每一个节点有一个值和一个包含所有子节点的列表。从图的观点来看,树也可视为一个拥有N 个节点和N-1 条边的一个有向无环图。二叉树是一种更为典型的树状结构。如它名字所描述的那样,二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”。(一)定义1、前序遍历前序遍历首先访问根节点,然后遍历左子树,最后遍历右子树。2、中序遍历中序遍历是先遍历左子树,然后访问根节点,然后遍历右子树。通常来说,原创 2022-05-30 22:00:23 · 118 阅读 · 0 评论 -
Day 240/300 数据结构链表(13)——合并两个有序链表
(一)题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0](二)思路及代码/** * Definition for singly-linked list. * class ListNode { *原创 2022-05-27 10:16:36 · 76 阅读 · 0 评论 -
Day 238/300 数据结构链表(12)——链表小结
(一)需求快半个月了,一直在学习链表的相关算法知识和做题。今儿来小结下~(二)单链表和双链表小结1、共同点它们都无法在常量时间内随机访问数据。它们都能够在 O(1) 时间内在给定结点之后或列表开头添加一个新结点。它们都能够在 O(1) 时间内删除第一个结点。2、不同点在单链表中,它无法获取给定结点的前一个结点,因此在删除给定结点之前我们必须花费 O(N) 时间来找出前一结点。在双链表中,这会更容易,因为我们可以使用“prev”引用字段获取前一个结点。因此我们可以在 O(1) 时间内原创 2022-05-25 21:39:57 · 104 阅读 · 0 评论 -
Day 237/300 数据结构链表(11)——实现双链表
(一)题目设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。(二)思路实现单链表在单链表的操作中,添加prev字段处理头结点,尾节点等特殊判断(三)代码实现var MyLinkedList = function() { this.head=null t原创 2022-05-24 20:46:23 · 94 阅读 · 0 评论 -
Day 235/300 数据结构链表(10)——双链表简介
(一)需求双链表,是指每个节点多了向前指向上一个节点的字段。(二)双链表1、定义双链表以类似的方式工作,但还有一个引用字段,称为“prev”字段。有了这个额外的字段,您就能够知道当前结点的前一个结点。Java代码定义如下:// Definition for doubly-linked list.class DoublyListNode { int val; DoublyListNode next, prev; DoublyListNode(int x) {val原创 2022-05-20 07:31:38 · 86 阅读 · 0 评论 -
Day 234/300 数据结构链表(9)——回文链表
(一)需求回文链表,想了很久,怎么移动都都会很多奇怪的情况出现。比如[1]也是回文。(二)回文链表1、问题描述给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。输入:head = [1,2,2,1]输出:true2、思路:将每个节点的值push到数组中数组反转判断数组反转前后是否相等就能判断出是否是回文3、代码/** * Definition for singly-linked list. * class原创 2022-05-19 09:17:54 · 154 阅读 · 0 评论 -
Day 230/300 数据结构链表(6)——反转链表
(一)需求链表除了增删改查,今儿的是反转链表(二)反转链表1、问题描述给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]2、思路:循环遍历改变每一个节点的指向;请记住,黑色结点 23 是原始的头结点。首先,我们将黑色结点的下一个结点(即结点 6)移动到列表的头部:然后,我们将黑色结点的下一个结点(即结点 15)移动到列表的头部:黑色结点的下一个结点现在是空。因此,我们停止原创 2022-05-13 17:22:35 · 154 阅读 · 0 评论 -
Day 227/300 数据结构链表(4)——用双指针法找到相交链表的节点
(一)需求第一次做,感觉蛮解法蛮新奇,记录一下~(二)用双指针法找到相交链表的节点1、题目给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。自定义评测:评测系统 的输入如下(你设计的程序 不适用 此输入):intersectVal - 相交的起始节点的值。如果不存在相交节原创 2022-05-08 09:41:02 · 174 阅读 · 0 评论 -
Day 226/300 数据结构链表(3)——用双指针法找到链表成环的节点
(一)需求之前做过,还是会忘,还是需要认真理解,常看。(二)双指针1、用双指针法找到链表成环的节点题目给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不原创 2022-05-06 07:42:37 · 241 阅读 · 0 评论 -
Day 225/300 数据结构链表(2)——双指针判断是否链表成环
(一)需求今儿学的是双指针,思路感觉像小学数据A追B的追击问题似的。接下来是双指针的介绍(二)双指针1、为什么用双指针来判断链表是否成环?快指针是能追上慢指针,可以减少空间,就判断是否成环;2、双指针的定义快指针:步数大于等于2的移动指针;慢指针:步数为1的移动指针;链表中使用两个速度不同的指针时会遇到的情况:如果没有环,快指针将停在链表的末尾。如果有环,快指针最终将与慢指针相遇。给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连原创 2022-05-05 22:23:45 · 193 阅读 · 0 评论 -
Day 224/300 数据结构链表(1)——单链表
(一)需求最近开始学习算法,链表是数据结构中蛮经典的一个数据结构。而单链表是基础中的基础。(二)单链表1、定义单链表中的每个结点不仅包含值,还包含链接到下一个结点的引用字段。通过这种方式,单链表将所有结点按顺序组织起来。// Definition for singly-linked list.public class SinglyListNode { int val; SinglyListNode next; SinglyListNode(int x) { val =原创 2022-05-04 13:59:06 · 114 阅读 · 2 评论 -
Day 223/300 常见数据结构的存储方式
(一)需求记得在很久之前,学习的《软件开发》书中有记载到,软件开发=数据结构+算法。一直以来,做业务多点,对于数据结构和算法的优化有些忽视。今儿开始学习(二)数据结构1、常见的数据结构队列列表栈堆树图(1)线性表线性表是最常用且最简单的一种数据结构,它是n个数据元素的有限序列。实现线性表的方式一般有两种,一种是使用数组存储线性表的元素,即用一组连续的存储单元依次存储线性表的数据元素。另一种是使用链表存储线性表的元素,即用一组任意的存储单元存储线性表的数据元素。(2)栈与队原创 2022-05-03 19:39:57 · 1184 阅读 · 1 评论 -
Day190/200 前端JS实现图像像素临近色的Demo
1、需求要用JS来实现魔法棒的功能,首先需要实现找到临近颜色的像素点,再标识出来。刚实现了找到了临近基本的像素点的部分。2、代码是图像分割中的泛洪算法在前端中的应用。<!-- * @Author: ArdenZhao * @Date: 2022-01-18 14:09:54 * @LastEditors: Do not edit * @LastEditTime: 2022-02-08 19:02:01 * @FilePath: /magic_wand/demo/4、myFloodF原创 2022-02-08 19:04:29 · 861 阅读 · 0 评论 -
Day 159/200 (JavaScript)桶排序
前言早晨又起晚了~ 发文晚一点1、描述桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。在额外空间充足的情况下,尽量增大桶的数量 使用的映射函数能够将输入的 N 个数据均匀的分配到 K 个桶中对于桶中元素的排序,选择何种比较排序算法对于性能的影响至关重要。1. 什么时候最快当输入的数据可以均匀的分配到每一个桶中。2. 什么时候最慢当输入的数据被分配到了同一个桶中。2、步骤元素分布在桶中:然后,元素..原创 2021-09-30 09:39:30 · 58 阅读 · 0 评论 -
Day 158/200 (JavaScript)计数排序
前言可能面试不会考,但学习下算法思维,感觉还是有用~(睡饱后,大脑运转速度会快一些,比昨儿早晨好多了)1、描述计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。计数排序不是比较排序,排序的速度快于任何比较排序算法。当然,年龄有重复时需要特殊处理(保证稳定性),这就是为什么最后要反向填充目标数组,以及将每个数字的统计减去 1 的原因。2、步骤找出待排序的数组中最大和最小的元素 统计数组中每个值为i的元素出现的次数,存入数组C的第i项 对所.原创 2021-09-29 08:21:38 · 52 阅读 · 0 评论 -
Day 157/200 (JavaScript)堆排序
前言早晨学习会稍微好一些;每天早晨第一件事儿就是先学点东西;争取每天进步一点点~1、描述堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列; 小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;2、步原创 2021-09-28 09:05:10 · 57 阅读 · 0 评论 -
Day 155/200(JavaScript)什么是快速排序?
前言早起学习的效果是会好一些,以后试试还是早晨学,晚上安排其他的事儿,争取早睡早起1、描述快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。递归排序快速排序的最坏运行情况是 O(n²),比如说顺序数列的快排。但它的平摊期望时间是原创 2021-09-26 08:42:40 · 52 阅读 · 0 评论 -
Day 154/200(JavaScript)什么是归并排序?
前言每天学一点,虽然不多,还有一些收获~ 算法里面的思想还蛮值得学习的1、定义归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。2、步骤 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列; 设定两个指针,最初位置分别为两个已经排..原创 2021-09-25 22:19:36 · 48 阅读 · 0 评论 -
Day 153/200(JavaScript)什么是希尔排序?
前言前几天是比较基础的,慢慢开始有点意思了,继续~ 今儿复习里可能会看一些课程1、定义先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。是插入排序的改进版2、步骤选择一个增量序列 t1,t2,……,tk,其中 ti > tj, tk = 1;按增量序列个数 k,对序列进行 k 趟排序;每趟排序,根据对应的增量 ti,将待排序列分割成若干长度为 m 的子序列,分别对各子表进行直.原创 2021-09-24 09:04:58 · 56 阅读 · 0 评论 -
Day 151/200(JavaScript)什么是插入排序?
前言今儿去约会了,回来晚又刷了会抖音,已经很晚了,但还是得学习,坚持下~ 明儿争取早点完成1、定义在已排序序列中从后向前扫描,找到相应位置并插入。和打扑克类似2、步骤将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)3、JavaScript实现function inse原创 2021-09-23 00:11:57 · 51 阅读 · 0 评论 -
Day 150/200(JavaScript)什么是选择排序?
前言今儿是中秋,第二天开始学习排序算法,脸皮是得厚点,虽然自己还是有点水,但是还是需要继续努力ing~1、定义双层循环找最小(大)在内存空间不变的情况下,依次找到最小(或最大)置到排序的最前方;用时间换空间特点无论什么数据进去都是 O(n²) 的时间复杂度 数据规模越小越好 不占用额外的内存空间2、步骤首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二原创 2021-09-21 17:49:59 · 44 阅读 · 0 评论 -
Day 149/200 (JavaScript)什么是冒泡排序?
前言数据结构学了很多年了,但其实最基础的东西,还是没掌握,哎,一个一个来哇,今儿先冒泡排序,学习下~1、定义冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端2、步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工原创 2021-09-20 22:56:32 · 74 阅读 · 0 评论 -
Day 104/200 JS实现转成小驼峰写法
写在前面的话一开始是用for循环写的,感觉挺low的;换了replace+正则,逼格一下就上来了~(一)题目手写给个xiaotuofeng-mingming-shezhi改成驼峰式xiaotuofengMingmingShezhi(二)思路1、正则匹配到-m -s2、转换为对应的大写字母;过程中用到了正则的在线匹配工具https://tool.oschina.net/regex/(三)代码let b = a.replace((/-\w/...原创 2021-02-18 18:33:27 · 740 阅读 · 0 评论 -
Day 98/100 (算法)给定数组,向右移动
写在前面的话每天写写算法,还挺有意思~(一)题目给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数;举例,输入:[1,2,3],k=1输出:[2,3,1]**需要想出3种方案,要求使用空间复杂度为O(1)的原地算法(二)思路比如,截取向右移动的数组再拼接~没想到原地算法,先完成再完美~(三)我的答案const move=function(arr,v){ let l=[],r=[] for(k in arr){.原创 2021-01-30 11:04:17 · 97 阅读 · 0 评论 -
Day 97/100 (算法)实现判断是否为快乐数
写在前面的话这道题,蛮有意思发现做了一段时间题,慢慢确定感会变高~(一)题目编写一个算法来判断是否为快乐数;【快乐数】的定义:对于一个 的正整数,每次将各位上的数字的平方和,然后循环这个过程,最终等于1,则为快乐数,始终变不到1,则不是快乐数,返回false;比如,191^2+9^2=828^2+2^2=686^2+8^2=1001^2+0^2+0^2=1(二)思路1、递归2、可以用Map来储存算过的数字;3、或不存储,直接判断...原创 2021-01-28 20:03:19 · 288 阅读 · 0 评论 -
Day 94/100 (算法)如何得到对象中属性值的最大值
写在前面的话《十点读书》的面试题,三轮才做出来...(一)题目给定一个对象,找到对象中属性最大的值,并返回对象,比如{b:36}(二)思路1、遍历对象的方法:for in2、想象指针挨个过,时间复杂度是O(1),空间复杂度是O(n)3、定义对象的方法:{[]:}(三)参考答案...原创 2021-01-22 00:17:31 · 247 阅读 · 0 评论 -
Day 91/100 (算法)计算两个数组的交集
写在前面的话每天一道算法题~发现自己的动手能力变强了~~(一)题目(二)我写的代码let arr1 = [1, 2, 2, 3, 4, 5, 6];let arr2 = [2, 5, 5]const findArr = function(a1, a2) { let set = new Set(); let arr = a1.length > a2.length ? a2 : a1 for (let v of arr) { if原创 2021-01-19 08:10:12 · 97 阅读 · 0 评论 -
Day 88/100 (算法题)计算去重后数组长度
写在前面的话最近,面试了一些公司发现好公司比较友好,不好的公司总是挑三拣四重点来了,好公司,对算法的要求高一些,开搞~(一)题目(二)我写的代码 (三)参考答案分析下来,参考大难会更好一些(符合题目),整体的时间和内存的开销也比较小~...原创 2021-01-16 08:46:56 · 84 阅读 · 0 评论 -
Day 87/100 学生身高排序算法(JS版)
写在前面的话从今天开始每天一道算法题希望读到的你和我一起成长~(一)题目(二)我的答案思路是,先将哪个数字有几个统计出来,再和原数组依次对比累加;(三)其他答案思路是将数组排序,然后对比对应位置的数字是否一致,累加~...原创 2021-01-12 17:16:04 · 760 阅读 · 0 评论 -
Day 83/100 链表相关知识
写在前面的话好多不懂,从头开始学JS的数据结构蛮新奇的还一、什么是链表链表是一种链式存储的线性表,是由一组节点组成的集合,每一个节点都存储了下一个节点的地址;指向另一个节点的引用叫链;和数组中的元素内存地址是连续的相比,链表中的所有元素的内存地址不一定是连续的。结构模拟如图:一般来说,说到链表,就要提下数组,一般链表都是和数组进行对比。在很多编程语言中,数组的长度时固定的,所以数组中的增加和删除比较麻烦,需要频繁的移动数组中的其他元素。然而,JavaScript中的数组并原创 2021-01-04 23:50:24 · 79 阅读 · 0 评论 -
Day 78/100 排序数组查找
写在前面的话今儿面试了,发现输出技术博客,是我的优势;谢谢面试官(一)题目排序数组查找(二)整理思路1、排序,则需不要每个数组元素都循环;但不清楚为升序还是降序,通过判断和逆转,整理排序;2、不需要找到每一项的具体位置,只需要统计数量即可;(三)代码以上...原创 2020-12-04 21:08:06 · 75 阅读 · 0 评论 -
Day 77/100 斐波那契数列
写在前面昨儿复习前端知识没写今儿补上(一)题目Day2(二)数据形象化特殊处理,便于理解(三)上代码原创 2020-12-04 20:34:37 · 121 阅读 · 0 评论 -
Day 74/100 如何理解时间复杂度
写在前面的话从上大学开始,就一直不理解时间复杂度是什么鬼后来,被面试官再次问到的时候,懵逼了So,思考了下这个知识点~(一)我的理解执行单个程序所消耗的时间。常有的时间复杂度有,O(1),O(n),O(logN)logN是指以2为底,N的对数(二)举个栗子i=i*2的时间复杂度是什么?相当于2的10次方是1024;时间复杂度是log1024=10;每次执行的时候是2的倍数;欢迎拍砖~以上...原创 2020-11-30 23:14:48 · 79 阅读 · 0 评论 -
Day 64/100 常用的加密算法
写在前面的话腾讯大佬问的,被问到了,当时好尴尬...于是查资料总结了下,还有其他算法,后续再学习(一)对称性加密1、MD5加密(无解密方法,解密不可逆)适用场景:用户注册完成后,将加密后的密码发送给后端,后端将加密后的密码存储在数据库中,当用户登录时,前端依然发送加密后的密码,后台对比数据库中存储的密码和前端发送的密码。2、AES加解密适用场景:网站注册时,如果注册过程分两步进行,第一步校验手机号,校验通过后,跳转到其他界面,填写其他注册信息,完成注册。如.原创 2020-11-05 18:06:43 · 171 阅读 · 0 评论 -
Day 35/100 (华为机试)提取不重复的整数
写在前面的话做题多了以后,手会越来越顺;第一次,直接在输入框中直接写代码,通过,感觉还不错(一)题目题目描述输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数示例1输入9876673输出37689(二)解题思路1、从右到左滑动指针并push到数组中;在push前,需要数组判断是否有;f.原创 2020-09-05 09:01:47 · 169 阅读 · 0 评论 -
Day 34/100 (华为机试)合并表记录
写在前面的话有个感觉,做题的过程,像是抽象地实现底层原理;无论最终结果如何,都会有所收获,加深对于底层原理的理解;从今天开始,打算弄个错题本~(一)题目题目描述数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)示例1输入40.原创 2020-09-03 13:35:35 · 212 阅读 · 0 评论 -
Day 33/100 (华为机试)质数因子
写在前面的话这篇是提前看了答案后,自己又写的,还是会有心的问题相比于追求好的算法而言,独自完成会更好一些毕竟,自己的人生得自己走,坑不踩不知道...(一)题目描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为22335)最后一个数后面也要有空格输入描述:输入一个long型整数输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。示例1输入...原创 2020-09-02 18:43:44 · 190 阅读 · 0 评论 -
Day 32/100 (华为机试)16进制转化为10进制
写在前面的话吭哧吭哧写半天,发现在JavaScript中有现成实现过的方法哎,笨啊...(一)题目题目描述写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入)输入描述:输入一个十六进制的数值字符串。输出描述:输出该数值的十进制字符串。示例1输入0xA输出10(二)解题思路1、截取输入的字符串,去掉0xstr.slice(2)2、遍历字符串,利用对象属性找到每个字符对应的值..原创 2020-09-01 22:10:08 · 522 阅读 · 0 评论 -
Day 31/100 (华为机试)字符串分隔问题
写在前面的话算法越写的越顺手,开心~题目链接 :https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7?tpId=37&&tqId=21227&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking(一)题目题目描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后.原创 2020-08-31 21:01:51 · 121 阅读 · 0 评论 -
Day 30/100 字符串最后一个单词的长度
写在前面昨儿搞了1h,没弄出来,早晨一会儿就弄完了,早晨的脑子好使点~发现自己还挺喜欢刷题,解决问题;(一)题目要求时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:747979题目描述计算字符串最后一个单词的长度,单词以空格隔开。输出描述:整数N,最后一个单词的长度。示例1输入:hello world输出:5(二)解题过程1、在牛客网的上条件的输入语句是调试了半天,结果不对;看答案..原创 2020-08-30 10:51:58 · 142 阅读 · 0 评论