数据结构和算法
文章平均质量分 74
数据结构和算法
passerbyYSQ
一个普通蒟蒻的成长之路
展开
-
【双栈】有括号的四则运算求值
已通过的题目题目都一样,稍微改一下输入。代码通过了以下 3 题的测试数据。其中,LeetCode的两题的测试数据不够复杂(下面说明)。代码的正确性,还需要更多的测试数据来测。224. 基本计算器227. 基本计算器 II题目 1683: 算法3-4:表达式求值LeetCode 227 题的测试数据,没有包含以下两种情况:1、负数开头。类似:-2+...2、左括号后的第一个数是负数。类似:2*(-3+4)...另外,如果有LeetCode会员,可以再提交一下这题:772. 基原创 2021-03-11 16:12:29 · 259 阅读 · 0 评论 -
【LeetCode】【每日一题】132. 分割回文串 II。DFS + 贪心 + 剪枝
原题https://leetcode-cn.com/problems/palindrome-partitioning-ii/给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文。返回符合要求的 最少分割次数 。提示:1 <= s.length <= 2000。s 仅由小写英文字母组成示例 1:输入:s = "aab"输出:1解释:只需一次分割就可将s 分割成 ["aa","b"] 这样两个回文子串。示例 2:输入:s = "a"输出:0示例.原创 2021-03-08 23:44:34 · 216 阅读 · 0 评论 -
【Leetcode】【每日一题】503. 下一个更大元素 II。单调栈,就这么通俗易懂
原题https://leetcode-cn.com/problems/next-greater-element-ii/给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。(注意: 输入数组的长度不会超过 10000)示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下原创 2021-03-06 12:57:07 · 163 阅读 · 0 评论 -
【螺钉和螺母问题】【算法分析与设计】假设我们有n个直径各不相同的螺钉以及n个相应的螺母...
教材原题假设我们有n个直径各不相同的螺钉以及n个相应的螺母。我们一次只能比较一对螺钉和螺母,来判断螺母是大于螺钉、小与螺钉还是正好适合螺钉。然而我们不能拿两个螺母做比较,也不能拿两个螺钉做比较。我们的问题是要找到每一对匹配的螺钉和螺母。为该问题设计一个算法,它的平均效率必须属于Θ(n log n)。题意分析可能看完题目,不知道它到底要我们干什么,又没有规定输入,也没有要求输出。这跟我们做oj的题很不一样,oj的题目只要在规定时间和空间内给出正确答案就行了。而这种算法分析设计题,输入、输原创 2020-10-18 11:10:35 · 8284 阅读 · 3 评论 -
【听礼炮】在海军节的开幕式上,有 A,B,C三艘军舰要同时开始鸣放礼炮各21响
题目描述在海军节的开幕式上,有A,B,C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放一次,B舰每隔6秒放一次,C舰每隔7秒放一次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。代码...原创 2020-10-08 16:37:58 · 10524 阅读 · 10 评论 -
【数据结构】(SCNU)课堂小测——高中知识构造等比数列求解汉诺塔时间复杂度
1. 数组 Q[n]用来表示一个循环队列,front 为队头元素的前一个位置,rear 为队尾元素的位置,计算队列中元素个数的公式为( )。注意一下细节,我已经加粗了。自己列式子的时候为了避免多1或者少1,自己画图模拟一下分情况讨论一下:(1)当 front <= rear, 则答案直接就是 (rear - front)(2)当 rear < front, 答...原创 2019-10-20 21:38:36 · 671 阅读 · 0 评论 -
设计算法“DeleteBetween”删除递增有序的链表中所有大于mink且小于maxk的元素
题目已知单链表中各结点的元素值为整数且递增有序,设计算法”DeleteBetween”删除链表中所有大于 mink 且小于 maxk 的元素,并释放被删结点的存储空间。前言数据结构课程的小测里面的最后一题。手写链表?写链表要考虑的细节实在有点多,不一定一开始就考虑的很细致。在测试卷上我写的一塌糊涂。一下课我就去在编译器上敲这题的代码。自己想了一些各种情况的数据,调自己的代码。瞎搞了3...原创 2019-10-16 00:32:09 · 3571 阅读 · 0 评论 -
一道关于链表的面试题:时间复杂度O(1)内将链表B借在链表A的后面
题目编码实现:将链表B借在链表A的后面。要求时间复杂度为O(1)。题意分析题目只说链表,并未说什么链表。言外之意,需要你来定义一种合适的链表结构。撇开代码的具体实现细节,这个考察你设计数据结构的能力。数据结构的设计这题用的是:循环单链表!别问我怎么想到用循环单链表,我想不到(????),是老师说的。【单链表】我们肯定先想到我们学过的最简单的:单链表!我们学过的单链表结构如...原创 2019-09-18 20:04:05 · 662 阅读 · 0 评论 -
C++用顺序存储结构实现线性表(顺序表)
教材用静态数组实现的,我自己尝试了一下动态申请数组内存来写。代码中的一些细节已经给了注释。仅供参考,欢迎指正,大佬勿喷。/*用顺序存储结构实现线性表---顺序表*/#include<cstdio>#include<iostream>using namespace std;template<typename T>class SeqList...原创 2019-09-09 23:01:23 · 657 阅读 · 0 评论