1045. Favorite Color Stripe 解析

直接把问题转化成最长不下降子序的问题。

这个题目时间的要求比较高。所以注意数据的处理。

一是爱娃不喜欢的颜色不放进比较序列里面直接丢掉能加快处理。

二是在转序列的时候注意直接把转好的序列丢进去不然会超时

三是在转序号的时候注意没有匹配的情况。虽然进行第一步后不用考虑这一步。这涉及到样例3的通过还是说下。

map的特殊性 没有赋值的会匹配到0上
2 3 1 5 6
4 2 2 2 2 2 4就会映射成 0 1 1 1 1 1 0 结果为5 而不是4.

这里要注意没有匹配的数会直接匹配成0,而导致出问题,需要注意下。


#include <iostream>
#include <cstring>
#include <climits>
#include <vector>
#include <map>
#include <algorithm>

#define MAX1 205
#define MAX2 10010

using namespace std;

int n;
int fav[MAX1],l[MAX2];
int dp[MAX2];//记录长度
int times;

//转化为最长不下降子序问题
map <int,int> l2no;

//是否是喜欢的颜色
map <int,bool> isLike;

int main(){


	scanf("%d",&n);

	//输入数据
	scanf("%d",×);
	for(int i =1;i <= times;i++){
		scanf("%d",&fav[i]);
		l2no[fav[i]] = i;
		isLike[fav[i]] = true;
	}

	scanf("%d",×);
	int n = 1,temp;
	for(int i = 1; i<= times;i++){
		scanf("%d",&temp);
		if(isLike[temp]){//喜欢的才加入
			l[n++] = l2no[temp];//直接把转化的序号丢到数组里面减少时间 不然超时
		}
	}

	//判定
	int ans = -1;
	for(int i = 1; i < n;i++){
		dp[i] = 1;
		for(int j = 1; j < i; j++){
			if(l[i] >= l[j] && dp[j] + 1 > dp[i]){
				dp[i] = dp[j] + 1;
			}
		}
		ans = max(dp[i],ans);
	}

	cout << ans << endl;

	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解析Stripe的Webhook对象,可以使用Stripe的Java库。首先,您需要在代码中使用Stripe API密钥进行身份验证。接下来,您需要使用Stripe库中的Webhook构造函数将Webhook请求转换为Java对象。例如: ```java String payload = getPayloadFromWebhookRequest(); //从Webhook请求中获取负载 String sigHeader = getSigHeaderFromWebhookRequest(); //从Webhook请求中获取签名标头 Event event = null; try { event = Webhook.constructEvent(payload, sigHeader, "your_stripe_webhook_secret"); } catch (SignatureVerificationException e) { //如果签名验证失败,则抛出异常 //处理异常 } if (event.getType().equals("charge.succeeded")) { //处理付款成功事件 } else if (event.getType().equals("charge.failed")) { //处理付款失败事件 } else { //处理其他事件 } ``` 在上面的代码中,`getPayloadFromWebhookRequest()`和`getSigHeaderFromWebhookRequest()`是您自己的方法,用于从Webhook请求中获取负载和签名标头。请注意,这里使用的是`constructEvent()`函数,它将Webhook请求转换为Java对象。您需要将`your_stripe_webhook_secret`替换为您的Stripe Webhook密钥。 一旦您将Webhook请求转换为Java对象,您就可以根据事件类型处理不同类型的事件。在上面的示例代码中,我们处理了付款成功和付款失败事件,但还有许多其他类型的事件,例如订阅创建,订阅取消等等。您可以在Stripe的文档中查找完整的事件列表和详细的事件处理说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值