阿里算法工程师笔试——2020.08.03

这篇博客记录了作者参加阿里算法工程师笔试的经历,两道题目在25分钟内完成。第一题涉及在有限金币下最大化购买舒适度的策略,采用排序与二分查找的方法。第二题是字符串操作问题,通过拆分和重建字符串,使用动态规划找到满足特定条件的最长子串。
摘要由CSDN通过智能技术生成

过题情况

第一题:100%
第二题:100%
说实话这场笔试题目比较简单,25minAK

第一题:n个朋友,每个人有金币x,有m个房子,每个房子有舒适度和价格,当前仅当这个人金币数大于房子价格时才能购买,每个人至多买一个房子,每个房子最多被一个人买,求最大舒适度

按舒适度从大到小排序,然后二分选择金币刚好>=价格的人进行购买,这里用multiset进行删除操作。

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+200;
struct node{
   
    int a,b;
}c[maxn];
bool cmp(node a, node b){
   
    if(a.a==b.a)return a.b<b.b;
    return a.a>b.a;
}
int main(){
   
    int n,m;
    scanf("%d%d",&n,&m);
    multiset<int> st;
    for(int i=0;i<n;i++){
   
        int x;
        scanf("%d",&x);
        st.insert(x);
    }
    for(int i=0
  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值