leetcode力扣刷题题解
文章平均质量分 61
以记录平时做题的题解,加深思路为主
漩涡编程,一鸣惊人
有话直说,说到做到,这就是我的忍道!
展开
-
【剑指Offer】30.《包含min函数的栈》详解
答:要,因为假如我们的最小值是0,栈A中有多个0,如果我们不将多个0都压入栈B,那我们将A中栈顶元素进行pop抛出的时候,也要将,栈B中的元素进行抛出,而如过我们栈A中存放有多个0,栈B中只有一个0,则都进行抛出的时候,栈A的最小值还是0,但是B中栈顶元素就不是0了。则我们必须换一种思路。1.push方法添加一个新的数据x时,检测如果栈A为空,直接入栈A和栈B,如果栈A不为空,则判断x与栈B栈顶的元素进行大小比较,如果x比栈B栈顶的元素小,则将x也压入栈B中。再定义一个降序栈存放正常栈的最小值。原创 2023-01-13 18:25:16 · 140 阅读 · 0 评论 -
【剑指Offer 】9.《用两个栈实现队列》详解
题目描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )解题思路栈(Stack)又叫堆栈,是一种特殊的“线性”数据结构,它是在同一端进行插入和删除数据的线性表。栈是最基础也是最常见的数据结构之一。对于栈的操作如下图所示:基本了解了栈这种数据结构之后,我们再来看如何解决这个题目。由于栈是先进后出的操作方式,而队列是先进先出的操作原创 2023-01-13 17:20:03 · 79 阅读 · 0 评论 -
20天算法入门--第2天双指针
有序数组的平方给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100] 示例 2:输入:nums = [-7,-3,2,3,11] 输出:[4,9,9,49,121]提示:1 <= nums.length <= 104-104.原创 2022-03-25 00:28:35 · 1052 阅读 · 2 评论 -
20天算法入门--第1天二分查找
二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2 输出: -1 解释: 2 不存在 nums 中因此返回 -1提示:你可以假设 .原创 2022-03-23 00:19:27 · 99 阅读 · 0 评论