首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏布衣者博客

    LeetCode-题库(8-9)

    给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。

    44320编辑于 2022-10-31
  • 来自专栏AI机器学习与深度学习算法

    机器学习入门 8-9 lasso

    本系列是《玩转机器学习教程》一个整理的视频笔记。本小节介绍模型正则化的另外一种方式LASSO,依然通过具体的编程实现LASSO,并对α取值与过拟合(拟合曲线)之间的关系进行探讨,进而对LASSO与Ridge进行比较。

    1.5K20发布于 2020-01-14
  • 来自专栏趣谈前端

    前端进阶第8-9周打卡题目汇总

    前端基础打卡已经基本结束了,内容从css基础,动画,js基本算法,作用域,闭包,节流防抖这些基本的web知识大家有没有都掌握了呢?年后会出一个进阶路线规划图,希望笔者可以带着大家,一起进步,一起成长.

    94940发布于 2020-02-12
  • 来自专栏AI SPPECH

    IO竞赛2025年题目解析:高级难度(8-9)

    2025年的高级难度(难度系数8-9)题目综合考察了选手的算法设计、数学建模、问题分析和代码实现能力。本文将深入解析2025年高级难度的IO竞赛题目,帮助选手们突破极限,冲击更高的竞赛成绩。 难度进阶路径: 入门(1-3) → 基础(4-5) → 中级(6-7) → 高级(8-9) → 专家(10) 难度系数 考察重点 核心知识点 学习目标 8-9 算法设计、数学建模、问题分析 高级图论、高级动态规划 (8题) ├── 第四章:高级难度题目解题策略 └── 第五章:顶尖选手的训练方法 第一章:2025年IO竞赛高级难度题目概述 根据2025年NOI修订版大纲,高级难度(NOI级别)的知识点难度系数为8-

    45010编辑于 2025-11-13
  • 来自专栏沉默王二

    栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈

    明白了栈的基本操作后,我们需要去深入地思考一下,栈是如何工作的。换句话说,为了使栈这个数据结构按照栈的方式去工作,它需要什么? 1)栈需要有一个指针,我们称之为 TOP,用它来指向栈中最顶部的那个元素。 2)当我们初始化一个栈的时候,我们把 TOP 的值设置为 -1,这样我们就可以通过 TOP == -1 来判断栈是否为空。 空栈的时候,TOP 等于 -1;把元素 1 压入栈中的时候,stack[0] 为 1,TOP 加 1 变为 0;把元素 2 压入栈中的时候,stack[1] 为 2,TOP 加 1 变为 1;把元素 3 假设栈中的元素是 int 类型,我们可以用 Java 语言来自定义一个最简单的栈。 3)用于浏览器:浏览器的后退按钮会把我们访问的 URL 压入一个栈中,每次我们访问一个新的页面,新的 URL 就压入了栈的顶部,当我们点了后退按钮,最新的那个 URL 就从栈中移除,之前的那个 URL

    1K20发布于 2021-03-16
  • 来自专栏linjinhe的专栏

    设计数据密集型应用(8-9):从单机到分布式

    所以,当你通过网络发送一个数据包的时候,程序必须考虑到这个数据包可能丢失、也可能延迟。

    78210发布于 2020-04-01
  • 来自专栏文武兼修ing——机器学习与IC设计

    栈与栈的实现栈栈的基本操作栈的实现

    栈 栈是一种基础的数据结构,只从一端读写数据。 基本特点就”后进先出“,例如顺序入栈1,2,3,4,5,再顺序出栈是5,4,3,2,1 栈的基本操作 栈的基本操作有如下几种: 检测栈是否为空 返回栈存储数据的数量 返回栈顶数据/返回栈顶数据并将其弹出 将数据压入栈 清空栈 栈的实现 软件实现——GO语言 软件的栈可以使用链表基本结构实现或使用数组实现:使用链表栈的优势是栈的容量几乎不限,确定是入栈出栈都需要开销较大的声明结构体;数组实现的优势是速度快 ,若入栈位置已经超出数组尺寸,则栈满,不入栈。 : 控制栈顶指针 栈满信号生成 栈空信号生成 该硬件栈的栈顶指针指向下一个入栈的位置,且位数比ram地址位多一位,当最高位为1时,可认为栈溢出,停止写入;同理,当栈顶指针指向0,该栈为空栈。

    1.3K50发布于 2018-04-27
  • 来自专栏后端码匠

    栈(顺序栈)

    栈 栈的理论 栈是一个先进后出的结构,类似于堆盘子,先放到地上的盘子最后被取走(默认只能取走一个盘子) 栈其实就是操作受限的线性表,只有一个口,每一次操作时,这个口可以当出口也可以当入口. 对栈的基本操作有 PUSH(压栈)和 POP (出栈),前者相当于表的插入操作(向栈顶插入一个元素),后者则是删除操作(删除一个栈顶元素)。 栈是一种后进先出(LIFO)的数据结构,最先被删除的是最近压栈的元素。 栈就像是一个箱子,往里面放入一个小盒子就相当于压栈操作,往里面取出一个小盒子就是出栈操作,取盒子的时候,最后放进去的盒子会最先被取出来,最先放进去的盒子会最后被取出来,这即是后入先出。 下面是一个栈的示意图: ? 注意:栈顶和栈底不是上下决定,而是有入栈方向决定. 栈的实现 顺序栈(顺序结构) 用一段连续的存储空间来存储栈中的数据元素,比较常见的是用数组来实现顺序栈。

    1.4K20发布于 2020-12-09
  • 来自专栏码海

    Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

    栈是什么?栈有什么作用? 首先,栈 (stack) 是一种串列形式的 数据结构。 根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论的并不是软件层面的栈,而是硬件层面的栈。 大多数的处理器架构,都有实现硬件栈。 EBP 和 栈指针 ESP 界定,EBP 指向当前栈帧底部(高地址),在当前栈帧内位置固定;ESP指向当前栈帧顶部(低地址),当程序执行时ESP会随着数据的入栈和出栈而移动。 内核将栈分成四种: 进程栈 线程栈 内核栈 中断栈 一、进程栈 进程栈是属于用户态栈,和进程 虚拟地址空间 (Virtual Address Space) 密切相关。 而 ARM 上中断栈和内核栈则是共享的;中断栈和内核栈共享有一个负面因素,如果中断发生嵌套,可能会造成栈溢出,从而可能会破坏到内核栈的一些重要数据,所以栈空间有时候难免会捉襟见肘。

    3.8K50发布于 2021-11-18
  • 来自专栏Linux内核那些事

    Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

    栈是什么?栈有什么作用? 首先,栈 (stack) 是一种串列形式的 数据结构。 根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论的并不是软件层面的栈,而是硬件层面的栈。 大多数的处理器架构,都有实现硬件栈。 EBP 和 栈指针 ESP 界定,EBP 指向当前栈帧底部(高地址),在当前栈帧内位置固定;ESP指向当前栈帧顶部(低地址),当程序执行时ESP会随着数据的入栈和出栈而移动。 内核将栈分成四种: 进程栈 线程栈 内核栈 中断栈 一、进程栈 进程栈是属于用户态栈,和进程 虚拟地址空间 (Virtual Address Space) 密切相关。 而 ARM 上中断栈和内核栈则是共享的;中断栈和内核栈共享有一个负面因素,如果中断发生嵌套,可能会造成栈溢出,从而可能会破坏到内核栈的一些重要数据,所以栈空间有时候难免会捉襟见肘。

    4.4K20发布于 2021-09-29
  • 来自专栏腾讯乐享

    8-9双月运营攻略一次性提供

    电脑端直通地址,管理员现在就可以体验: https://lexiangla.com/settings/mobile-layout   领取详细攻略与素材 3个场景 12个精彩活动 为你一次性提供8-9

    69520编辑于 2022-07-21
  • 来自专栏无题~

    栈程序演示:创建空栈、压栈、出栈、遍历、清空

    ,int *);//出栈并且返回出栈元素,还要判断出栈是否成功 20 bool empty(PSTACK);//判断栈是否为空 21 void clear(PSTACK);//清空数据 22 );//遍历 32 clear(&S);//清空 33 34 if(pop(&s,&val)){//删元素,出栈 35 printf("出栈成功,出栈元素的是 ,为空栈 81 esle return false; 82 } 83 84 //把pS所指向的栈出栈一次,并把出栈的元素存入val形参所指向的变量中, 85 //出栈成功返回true 90 PNODE r = pS->pTop;//临时指针r指向出栈元素位置:栈顶,方便最后释放内存 91 ps->pTop = r->pNext;//栈顶指针指向原来栈顶的下一个节点地址 = pS->pBottom){//当栈顶指针不指向栈底时,栈不为空 106 q = p->pNext;//临时指针q指向下一个节点 107

    1.5K10发布于 2019-09-10
  • 来自专栏混说Linux

    一文读懂 | Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

    1 栈是什么?栈有什么作用? 首先,栈 (stack) 是一种串列形式的数据结构。 根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论的并不是软件层面的栈,而是硬件层面的栈。 大多数的处理器架构,都有实现硬件栈。 EBP 和 栈指针 ESP 界定,EBP 指向当前栈帧底部(高地址),在当前栈帧内位置固定;ESP指向当前栈帧顶部(低地址),当程序执行时ESP会随着数据的入栈和出栈而移动。 内核将栈分成四种: 进程栈 线程栈 内核栈 中断栈 一、进程栈 进程栈是属于用户态栈,和进程 虚拟地址空间 (Virtual Address Space) 密切相关。 而 ARM 上中断栈和内核栈则是共享的;中断栈和内核栈共享有一个负面因素,如果中断发生嵌套,可能会造成栈溢出,从而可能会破坏到内核栈的一些重要数据,所以栈空间有时候难免会捉襟见肘。

    4.1K31编辑于 2022-11-18
  • 来自专栏人人都是极客

    一文搞懂 | Linux 中的各种栈(进程栈 线程栈 内核栈 中断栈)

    栈是什么?栈有什么作用? 首先,栈 (stack) 是一种串列形式的 数据结构。 根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论的并不是软件层面的栈,而是硬件层面的栈。 大多数的处理器架构,都有实现硬件栈。 EBP 和 栈指针 ESP 界定,EBP 指向当前栈帧底部(高地址),在当前栈帧内位置固定;ESP指向当前栈帧顶部(低地址),当程序执行时ESP会随着数据的入栈和出栈而移动。 内核将栈分成四种: 进程栈 线程栈 内核栈 中断栈 一、进程栈 进程栈是属于用户态栈,和进程 虚拟地址空间 (Virtual Address Space) 密切相关。 而 ARM 上中断栈和内核栈则是共享的;中断栈和内核栈共享有一个负面因素,如果中断发生嵌套,可能会造成栈溢出,从而可能会破坏到内核栈的一些重要数据,所以栈空间有时候难免会捉襟见肘。

    8.9K43发布于 2021-10-12
  • 来自专栏C语言基础

    c语言实现栈(顺序栈,链栈)

    ✨ 栈 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。 栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。 出数据也在栈顶 "栈"的常见接口实现 InitST:初始化栈 STPush:入栈 STPop:出栈 STEmpty:判空(判断是否为空栈) PrintSTTop:打印栈顶元素 STTop:返回栈顶元素 ,向"栈"中插入数据) 学到这里(顺序表和链表),对于"栈"的压栈操作很简单. 更新栈顶.(将栈顶指针指向原栈顶的下一个结点↓).

    91420编辑于 2023-10-14
  • 来自专栏码匠的流水账

    leetcode栈之最小栈

    序 本文主要记录一下leetcode栈之最小栈 题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 提示: pop、top 和 getMin 操作总是在 非空栈 上调用。 push当前的min值;在pop的时候,判断是否等于min值,等于的话,再pop一次,更新当前min值为上一个min值,这里这样子实现是基于题目的假设(pop、top 和 getMin 操作总是在 非空栈 doc 最小栈

    63930发布于 2020-10-19
  • 来自专栏ly0n

    栈平衡和栈迁移

    所以要保持栈的大小,使ESP始终指向栈顶! 总结 ​ 也就是说在函数运行之前,函数所用到的所有数据都要入栈,这是需要先将esp的值赋给ebp,使其作为下一个开辟栈的临时栈底,函数内部程序执行完成后(ret之前),esp恢复到入栈前的状态,最后将 ebp移除栈。 esp(rsp),使其指向另外的地址,作为伪造栈的栈顶。 第一次leave; ret,new esp是为了栈劫持的目标地址。执行到retn时,esp还在原来的栈上,ebp已经指向了新的栈顶. ? ?

    1.7K20发布于 2020-11-04
  • 来自专栏码匠的流水账

    leetcode栈之最小栈

    序 本文主要记录一下leetcode栈之最小栈 minstack_2.png 题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。      push(x) —— 将元素 x 推入栈中。     pop() —— 删除栈顶的元素。     top() —— 获取栈顶元素。     getMin() —— 检索栈中的最小元素。 提示:     pop、top 和 getMin 操作总是在 非空栈 上调用。 push当前的min值;在pop的时候,判断是否等于min值,等于的话,再pop一次,更新当前min值为上一个min值,这里这样子实现是基于题目的假设(pop、top 和 getMin 操作总是在 非空栈 doc 最小栈

    50921发布于 2020-10-04
  • 来自专栏周小末天天开心

    栈的介绍以及使用数组模拟栈的入栈和出栈

    栈(stack) 介绍 (1)栈是一个先进后出的有序列表 (2)栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。 (3)根据栈的定义可知,最先放入栈中的元素在栈底,最后放入的元素在栈顶,而删除元素时正好相反,最后放入的元素最先删除,最先放入的元素最后删除。 ---- 使用数组模拟栈 思路分析 (1)定义一个 top 表示栈顶,初始化为 -1 (2)入栈的操作:stack[++top] = data; (3)出栈的操作:int value = stack[top ] = value; }  出栈 //出栈-pop,将栈顶的数据返回 public int pop() { //先判断栈是否为空 if(isEmpty( }  显示栈 //显示栈的情况(遍历栈),遍历时,需要从栈顶开始显示数据 public void list() { //判断栈是否为空 if(isEmpty())

    56110编辑于 2023-10-16
  • 来自专栏愿天堂没有BUG(公众号同名)

    大多数程序员都懂的java虚拟机:C1编译器从字节码到HIR

    填充代码如代码清单8-9所示。 代码清单8-9 填充基本块 GraphBuilder::GraphBuilder(...){ // 划分基本块,找出循环头 BlockListBuilder blm(compilation, scope 指令并填充基本块 iterate_all_blocks(); break; } ... } 由于CFG是图结构,C1将使用广度优先遍历,而广度优先遍历的实现通常需要用一个队列进行辅助,该队列即代码清单8- 解释完成后生成的三条SSA指令会填充到基本块中,至此HIR的构造就完成了,之前基于栈的字节码变成了基于寄存器的SSA指令。

    1K20编辑于 2022-10-28
领券