2023华为od机试C卷【转盘寿司】C 实现 单调栈

news2024/9/20 0:51:43

#include <stdio.h>
#include <stdlib.h>


/*单调栈 旋转寿司

3 15 6 14
3 21 9 17

*/
int main()
{
   int i = 0;
   int len = 0;
   int data = 0;
   int nums[501];
   char c ;

   while(scanf("%d",&nums[i]) == 1)
   {
        i++;
        len++;
        c = getchar();
        if(c == '\n')
            break;
   }
   int *out = NULL;
   int *stack = NULL;
   int top = 0;
   int flag = 1;
   out = (int *)malloc(len*sizeof(int));
   stack = (int *)malloc(len*sizeof(int));

   for(i=0; i<len; i++)//这个for只能确定数组右边有没有比它小的数
   {
       if(i == 1)
       {
            stack[top] = i;
            top++;
       }
       else
       {
            while(top>0 && (nums[i]< nums[stack[top-1]]))//出栈的操作
            {
                out[stack[top-1]] = nums[i] + nums[stack[top-1]];
                top--;
            }

            stack[top] = i;//进栈
            top++;
       }
   }

    while(top>1)//剩下stack里面的下标对应的数 是从小到大排序的,所以栈顶的下一个最小值一定在栈底
    {
        out[stack[top-1]]= nums[stack[top-1]] + nums[stack[0]];//每个栈顶都出栈
        top--;
    }

    out[stack[0]]= nums[stack[0]];


   for(i=0; i<len; i++)
   {
        printf("%d;",out[i]);
   }

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2056387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【顺序栈的实现1】--------含栈顶,栈底指针;栈顶指针指向栈顶元素的下一个位置

1. 栈的抽象数据类型定义&#xff1a; 2.顺序栈的存储方式 同一般线性表的顺序存储结构完全相同&#xff1a; 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。栈底一般在低地址端。 附设top指针&#xff0c;指示栈顶元素在顺序栈中的位置另设base指针&#xff0…

<数据集>斯坦福狗狗识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;20580张 标注数量(xml文件个数)&#xff1a;20580 标注数量(txt文件个数)&#xff1a;20580 标注类别数&#xff1a;120 标注类别名称&#xff1a;[Chihuahua, Japanese_spaniel, Maltese_dog, Pekinese, Shih-Tzu…

快速排序(Java实现)

目录 快速排序的思想 代码实现 思路 代码 快速排序的特点 快速排序的思想 快速排序和冒泡排序一样&#xff0c;是一种交换排序。快速排序的核心思想也是分治&#xff0c;分而治之。给定一个数组&#xff0c;先选定一个元素作为枢轴&#xff0c;然后将大于枢轴的放在右边&a…

Javaweb学习之Vue项目的创建(二)

学习资料 Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org) 准备工作都做完了&#xff0c;接下来开始Vue的正式学习。 第一步&#xff0c;打开VS Code 在VS Code里&#xff0c;我们也需要使用到终端&#xff0c;如果不是以管理员身份打开&#xff0c;在新建Vue项目的时候…

围棋棋盘的图像(识别)240801

识别: import tensorflow as tf import numpy as np from tensorflow.keras import layers, models from tensorflow.keras.utils import to_categorical from tensorflow.keras.preprocessing.image import load_img, img_to_array# 加载并预处理图像 def load_and_preproces…

Linux升级lib64中的libc.so.6导致所有命令失效

ls: relocation error: libpthread.so.0: symbol __libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference 升级Glibc后出现所有shell命令都不可用 # systemctl status systemctl: relocation error: /lib64/libpthread.so.0: sy…

为视觉语言多模态模型进行偏好优化

训练模型使得它能够理解并预测人类偏好是一项比较复杂的任务。诸如 SFT (Supervised finetuning) 的传统的方法一般都需要耗费较大成本&#xff0c;因为这些算法需要对数据打上特定的标签。而偏好优化 (Preference Optimization) 作为一种替代选项&#xff0c;通常可以简化这一…

【10-21】设计原则

目录 一.开闭原则 二.里氏代换原则 三.依赖倒转原则 四.接口隔离原则 五.迪米特法则 六.合成复用原则 前言&#xff1a; 在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可拓展性和灵活性&#xff0c;程序员要尽量根据6条原则来开发…

关于WebSocket必知必会的知识点

什么是WebSocket WebSocket是一种网络传输协议&#xff0c;可以在单个TCP连接上进行全双工通信&#xff0c;位于OSI模型的应用层。 WebSocket使得客户端和服务器之间的数据交换变得更加简单&#xff0c;服务器可以主动向客户端发送消息。在WebSocket API中&#xff0c;浏览器和…

20240820让飞凌的OK3588-C的核心板在Linux R4下挂载1TB的NTFS格式的TF卡

fdisk -l df -h df -t df -T mount 20240820让飞凌的OK3588-C的核心板在Linux R4下挂载1TB的NTFS格式的TF卡 2024/8/20 18:03 【默认挂载到/run/media/mmcblk1&#xff0c;不用任何操作&#xff01;】 插入1TB的TF卡之后的dmesg信息&#xff1a; [ 876.551728] fdee0000.hdmi…

pandans读写分析csv文件

1.什么是pandans Pandas 是一个强大的 Python 库&#xff0c;主要用于数据处理和数据分析。它为 Python 提供了高效的数据结构和数据分析工具&#xff0c;使得数据处理变得更加简单和直观。 2.什么事csv文件 CSV 文件&#xff08;Comma-Separated Values&#xff0c;逗号分隔值…

点亮宇宙的温暖之光 —— COSMOSPANDA星际熊猫“寞”降临!

在这个科技日新月异的时代&#xff0c;我们往往在追求进步的同时&#xff0c;忽略了心中那份最真挚的情感与温暖。但今天&#xff0c;让我们共同迎接一位来自宇宙深处的温暖使者——COSMOSPANDA星际熊猫“寞”&#xff0c;它将用独特的方式&#xff0c;连接过去与未来&#xff…

3:2比例的程序员专业显示器,效率提升显著,摸鱼时间又多了

对于我们程序员来说&#xff0c;显示器的重要性不言而喻&#xff0c;作为我们与代码交流的直接工具&#xff0c;他影响着我们的工作效率、舒适度和整体编程体验。我在家用的是自己笔记本的屏幕&#xff0c;简单写写代码还行&#xff0c;涉及到多任务协同或者大代码量开发就有点…

Linux 下安装miniconda(少走弯路)

Miniconda 和 Conda 都是用于管理 Python&#xff08;及其他语言&#xff09;环境和包的工具。 conda对于我来说是太臃肿了&#xff0c;很多的包我不会使用&#xff0c;所以选择安装miniconda是一个较好的选择。 下面是linux安装miniconda的实际操作。 在以下的网站&#xf…

复现 LET-NET

摘要 稀疏光流法是计算机视觉中的一项基本任务。然而&#xff0c;它依赖于恒定的假设限制了其在高动态范围&#xff08;HDR&#xff09;场景中的适用性。在本研究中&#xff0c;我们提出了一种新的方法&#xff0c;旨在通过学习一个对光照变化具有鲁棒性的特征映射来超越图像的…

LabVIEW轨距实时动态检测系统

轨距实时动态检测系统解决铁路轨距不平顺现象&#xff0c;提高铁路运行安全性。系统利用高精度的激光位移传感器与数据同步采集技术&#xff0c;结合LabVIEW软件进行数据处理&#xff0c;有效提高了轨距检测的准确性与效率。 项目背景 随着铁路运输业的快速发展&#xff0c;轨…

速度+耐力,希迪智驾引领中国商用车自动驾驶发展

作者 | 魏启扬 来源 | 洞见新研社 资本市场对自动驾驶的投资热情依然不减。 不久前&#xff0c;科技巨头Alphabet重申了对自动驾驶未来的承诺&#xff0c;并表示将向其自动驾驶子公司Waymo投资50亿美元&#xff0c;分多年进行。 更早一点的5月份&#xff0c;孙正义旗下的…

如何使用 JavaScript 动态创建下拉框?

在现代 Web 开发中&#xff0c;动态生成页面元素是一个常见的需求&#xff0c;比如在用户选择某个选项后&#xff0c;根据选择的内容动态生成新的下拉框。今天&#xff0c;我们来聊一聊如何使用 JavaScript 动态创建一个带选项的下拉框&#xff0c;并用一个具体的场景带大家进入…

第十九讲 python中的异常本质-异常定位-异常解决思路

目录 1.异常是什么&#xff1f; 2.异常机制的本质 2.1 本质 2.2 异常对象 2.3 抛出异常 2.4 捕捉异常 2.5 最终处理 3.异常的解决思路 3.1 异常定位 3.2 异常解决 1.异常是什么&#xff1f; 异常是指程序在运行时发生的错误或不正常情况。 工作中&#xff0c;程序遇到的情况不…

数据结构中的双向链表

1.链表的分类 链表的结构非常多样&#xff0c;以下情况组合起来就是8种&#xff08;2x2x2&#xff09;链表结构&#xff1a; 在带头链表中&#xff0c;除了头结点&#xff0c;其他结点均存储有效的数据。 头结点是占位子的&#xff0c;也叫做“哨兵位”。head结点就是头结点。…