Leetcode刷题指南-下一个更大的数(1206)

文章目录

    • 1)题目
      • 下一个更大的数
        • 要求:
        • 样例
    • 2)思路
    • 3)代码

1)题目

下一个更大的数

要求:

你有两个数组 nums1和nums2(互不重复),其中nums1是nums2的子集。 在nums2的相应位置找到nums1所有元素的下一个更大数字。
nums1中的数字x的下一个更大数字是nums2中x右边第一个更大的数字。 如果它不存在,则为此数字输出-1。

样例

输入: nums1 = [4,1,2], nums2 = [1,3,4,2].
输出: [-1,3,-1]
解释:
对于第一个数组中的数字4,在第二个数组中找不到下一个更大的数字,因此输出-1。
对于第一个数组中的数字1,第二个数组中的下一个更大数字是3。
对于第一个数组中的数字2,第二个数组中没有下一个更大的数字,因此输出-1。

2)思路

暴力搜索试一下

3)代码

//头文件
#pragma once
#include
using namespace std;
#include

class Solution1
{
public:
	vector<int> nextGreaterElement(vector<int> A, vector<int> B)
	{
		vector<int> res;
		int m;
		for (int i = 0; i < A.size(); i++)
		{
			for (int j = 0; j < B.size(); j++)
			{
				if (A[i] == B[j])
				{
					m = j;
					int k = m + 1;
					for (k; k < B.size();)
					{
						if (B[k] > A[i])
						{
							res.push_back(B[k]);
							break;
						}
						else
						{
							k++;
						}
					}
					if (k == B.size())
					{
						res.push_back(-1);
					}


				}
			}
		}
		return res;
	}
}; 
/*主函数*/
#include 
using namespace std;
#include 
#include “1206.h”
int main()
{
	vector<int> A = { 4,1,2 };
	vector<int> B = {1,3,4,2};
	class Solution1 fun;
	vector<int> res = fun.nextGreaterElement(A,B);
}

你可能感兴趣的:(2021秋招刷题指南)