下一个更大的元素

news/2024/7/7 19:44:22
#include<iostream>
#include<vector>
#include<stack>
#include<unordered_map>
using namespace std;

// 下一个更大元素

// 给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。
// 请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。
// nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应
// 位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。

// 示例 1:
// 输入: nums1 = [4,1,2], nums2 = [1,3,4,2].
// 输出: [-1,3,-1]

class Solution{
    public:
        vector<int> nextGreaterElement(vector<int>& nums1,vector<int>& nums2){
          stack<int> st;
          vector<int> result(nums1.size(),-1);
          if(nums1.size()==0)return result;
          unordered_map<int,int> umap;
          for(int i=0;i<nums1.size();i++){
              umap[nums1[i]]=i;
          }
          st.push(0);
          for(int i=1;i<nums2.size();i++){
              if(nums2[i]<nums2[st.top()]){
                  st.push(i);
              }else if(nums2[i]==nums2[st.top()]){
                  st.push(i);
              }else{
                  while(!st.empty()&&nums2[i] > nums2[st.top()]){
                      if(umap.count(nums2[st.top()]>0)){
                          int index=umap[nums2[st.top()]];
                          result[index]=nums2[i];
                      }
                      st.pop();
                  }
                  st.push(i);
              }
          }
          return result;

        }
};

int main(){
    return 0;
}

http://lihuaxi.xjx100.cn/news/603894.html

相关文章

【实现QQ登录界面 Objective-C语言】

一、实现QQ登录界面 1.实现这样的QQ登录界面 1.实现这样的QQ登录界面 2.首先,分析一下,这个界面里,都有哪些控件 是不是两个Label,两个TextField文本框,1个Button吧 3.先拖1个Label上来 再拖1个TextField文本框上来,在这个Label右边, 然后选中这两个控件, 按住o…

论文《An Effective Consistency Constraint for Sequential Recommendation》

C2Rec: An Effective Consistency Constraint for SequentialRecommendation 这篇文章提出了序列推荐建模中一种有效的一致性约束防范&#xff0c;不用修改模型结构&#xff0c;仅仅添加2个额外的损失函数&#xff0c;就能达到非常好的效果。不像基于对比学习的方法&#xff0…

关于TCP和UDP的认识以及一些常用概念

单播&#xff0c;广播&#xff0c;组播 单播: 两个主机之间的端对端的通信&#xff08;可以在广域网进行&#xff09; 广播: 一个主机对整个局域网上所有主机的通信&#xff08;只能在局域网进行&#xff0c;比如192.1168.1.255。这个255就是表示这段网络的所有主机&#xff0…

ansible第五天

1、jinjia2模板 hosts.j2&#xff0c;内容如下(主机名和ip地址使用变量)&#xff1a; Welcome to 主机名 &#xff01;&#xff08;比如servera.lab.example.com&#xff09; My ip is ip地址. 要求在所有受管主机生成文件&#xff1a;/etc/welcome.txt。 2、角色部分 根据下列…

JVM类装载器详解

一、JVM 组成和作用1、 类装载器&#xff08;Class Loader&#xff09;&#xff1a;.class文件由类加载器加载到数据运行区&#xff0c;2、数据运行区 (Runtime data area)&#xff1a;&#xff1b;3、 执行引擎&#xff08;Execution Engine&#xff09;&#xff1a;由于字节码…

SIoU Loss

1、论文 题目&#xff1a;《SIoU Loss: More Powerful Learning for Bounding Box Regression》 参考博客&#xff1a; https://blog.csdn.net/qq_56749449/article/details/125753992 2、原理 有关IoU损失函数&#xff0c;像GIoU、DIoU、CIoU都没有考虑真实框与预测框之间的…

最小二乘问题

最小二乘问题 min⁡f(x)12∑i1mri2(x)12r(x)Tr(x)x∈Rn,m⩾n(1)\min f\left( x\right) \dfrac{1}{2}\sum ^{m}_{i1}r^{2}_i\left( x\right) \dfrac{1}{2}r\left( x\right) ^{T}r\left( x\right)\quad x\in \mathbb{R} ^{n},m\geqslant n\tag{1} minf(x)21​i1∑m​ri2​(x)21​…

shell-正则表达式与sed

1、显示/etc/rc.d/rc.sysinit文件中以不区分大小的h开头的行&#xff1b; [rootcotenos ~]# grep -i ^h /etc/passwdhalt:x:7:0:halt:/sbin:/sbin/halt # -i:表示忽视大小写 # ^&#xff1a;表示匹配行首 2、显示/etc/passwd中以sh结尾的行; [rootcotenos ~]# grep sh$ /etc…