首页 > 其他分享 >力扣_剑指Offer_个人解题资料

力扣_剑指Offer_个人解题资料

时间:2022-09-23 13:58:45浏览次数:62  
标签:deleteHead arr minStack Offer int top 力扣 解题 public

day01

剑指Offer 09.用两个栈实现队列:

题目描述:

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )

示例 1:

输入:
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出:[null,null,3,-1]

示例 2:

输入:
["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
[[],[],[5],[2],[],[]]
输出:[null,-1,null,null,5,2]

提示:

1 <= values <= 10000
最多会对 appendTail、deleteHead 进行 10000 次调用

我的题解:

/**  * Your CQueue object will be instantiated and called as such:  * CQueue obj = new CQueue();  * obj.appendTail(value);  * int param_2 = obj.deleteHead();  */ class CQueue {     int top1=0,top2=0;     int[]arr;     public CQueue() {         arr=new int[10000];     }          public void appendTail(int value) {         arr[top1++]=value;     }          public int deleteHead() {         if(arr.length!=0&&top2<arr.length&&arr[top2]!=0){             return arr[top2++];         }         return -1;     } } 来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 剑指Offer 30.包含min函数的栈: 题目描述:

定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。

示例:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.min(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.min(); --> 返回 -2.

提示:

各函数的调用总次数不超过 20000 次

我的题解

/**  * Your MinStack object will be instantiated and called as such:  * MinStack obj = new MinStack();  * obj.push(x);  * obj.pop();  * int param_3 = obj.top();  * int param_4 = obj.min();  */ class MinStack {     int[]arr;     int top=0;     /** initialize your data structure here. */     public MinStack() {         arr=new int[20000];     }          public void push(int x) {         arr[top++]=x;     }          public void pop() {         if(top>=0)             top--;         //arr[top]=0;     }          public int top() {         return arr[top-1];     }          public int min() {         int min=arr[0];         for(int i=1;i<top;i++){             if(arr[i]<min){                 min=arr[i];             }         }         return min;     } }

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

标签:deleteHead,arr,minStack,Offer,int,top,力扣,解题,public
From: https://www.cnblogs.com/hngz/p/16722440.html

相关文章

  • 力扣21(java&python)-合并两个有序链表(简单)
    题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。  示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1......
  • 【解题报告】SP10628 COT-Count on a tree
    SP10628COT这道题的传送门双倍经验,两个题一样的啦简要题意给出一颗n个节点的树,每个节点都有一个权值,求u到v的第k小权值其实就是树上的区间第k小主席树+树上差分......
  • 力扣445(java&python)-两数相加Ⅱ(中等)
    题目:给你两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字0之外......
  • 1729D解题报告
    这是一题开错的题想法每次两个人去最优(莫名悲伤),其中一个预算大于实际花费,另一个随意理由如下如果两个人去花费超过了预算,此时添加第三个人(他的花费小于预算),那么那个要......
  • 1733D1&D2解题报告
    1733D1题目大意:给出两个长度为n的01串,每次能选择两个位置进行取反,相邻的位置取反代价为x,不相邻则为y,问让其中一串变成另一串的最小代价初遇想法对于两个串上01不同的......
  • 力扣2(java&python)-两数相加(中等)
    题目:给你两个 非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表......
  • P8283 「MCOI-08」Dantalion 解题报告
    P8283「MCOI-08」Dantalion解题报告:最近好像有很多人做这道题,把这题题解发一下吧。可能说的比较啰嗦,见谅。题意给定序列\(a\),\(q\)次询问一个区间有多少个子区间在......
  • 【解题报告】[JOISC 2014] 挂饰
    【我也不知道什么TM的系列】JOISC2014挂饰经典的传送门写这篇文章来告诉大家写贪心的重要性心路历程看到这道题第一印象:woc蓝题看了一下样例:woc水题贪了60分:woc......
  • 【解题报告】Power收集
    东方Project相关试题Power收集(注:我不是东方众哦但下次回家可以试着玩一下传送门先读题啦n*m矩阵,其中有K个格子上有P点,价值val[i][j],从第一行任意格子出发,每秒向下走......
  • 【Coel.解题报告】【没事找事】CSP-S2 真题解析
    昨天刚考完CSP-S1,反正没什么想做的(最近好颓废…),来复盘一下。本次比赛评价(转载):CSP-S1是由CCF自主研发的一款全新开放世界冒险游戏。游戏发生在一个被称作「基数排序......