LeetCodeWeeklyContest-182

本文解析了182周赛中的四道题,包括找出数组中的幸运数、统计作战单位数、设计地铁系统和找到所有好字符串。通过详细的代码和时间空间复杂度分析,帮助读者理解每道题目的解题思路。

Rank:585/3910 \quad AC: 3/4
上周的周赛,补一下题解

题目传送:182周赛

1394. 找出数组中的幸运数

class Solution {
public:
    int findLucky(vector<int>& arr) {
        int count[600];
        memset(count,0,sizeof(count));
        for(int i=0;i<arr.size();i++) count[arr[i]]++;
        int res = -1;
        for(int i=0;i<arr.size();i++){
            if(arr[i]==count[arr[i]]){
                res = max(res,arr[i]);
            }
        }
        return res;
    }
};

时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n)

1395. 统计作战单位数

数据范围:n=200,可以进行暴力枚举, n 3 = 8000000 n^3=8000000 n3=8000000,是可以过掉的

class Solution {
public:
    int numTeams(vector<int>& rate) {
        int res = 0,n = rate.size();
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                for(int k=j+1;k<n;k++){
                    if(rate[i]>rate[j]&&rate[j]>rate[k]) {
                        res ++;
                        // cout << rate[i] << " " << rate[j] << " " <<rate[k] << endl;
                    }
                    else if(rate[i]<rate[j]&&rate[j]<rate[k]) {
                        res ++;
                        // cout << rate[i] << " " << rate[j] << " " <<rate[k] << endl;
                    }
                }
            }
        }
        return res;
    }
};

时间复杂度: O ( n 3 ) O(n^3) O(n3) 空间复杂度: O ( 1 ) O(1) O(1)

1396. 设计地铁系统

这道题目主要是数据结构的设计问题
unordered_map<int,pair<string,int>> in; 保存了乘客的id和站名和进站时间
unordered_map<int,pair<string,int>> out; 保存了乘客id和站名和出站时间
unordered_map<pair<string,string>,pair<int,int>,hashfunc> st; 保存了进站名和出站名 以及 走这段路程的人数,以及所有走这段路程时间

struct hashfunc
{
    template<typename T, typename U>
    size_t operator() (const pair<T, U> &i) const
    {
        return hash<T>()(i.first) ^ hash<U>()(i.second);
    }
};
class UndergroundSystem {
public:
    unordered_map<int,pair<string,int>> in;
    unordered_map<int,pair<string,int>> out;
    unordered_map<pair<string,string>,pair<int,int>,hashfunc> st;
    UndergroundSystem() {
        
    }
    
    void checkIn(int id, string stationName, int t) {
        in[id] = make_pair(stationName,t);
    }
    
    void checkOut(int id, string stationName, int t) {
        out[id] = make_pair(stationName,t);
        string start = in[id].first;
        int stime = in[id].second;
        st[make_pair(start,stationName)].first ++;
        st[make_pair(start,stationName)].second += t-stime;
    }
    
    double getAverageTime(string startStation, string endStation) {
        return st[make_pair(startStation,endStation)].second*1.0 / st[make_pair(startStation,endStation)].first;
    }
};

/**
 * Your UndergroundSystem object will be instantiated and called as such:
 * UndergroundSystem* obj = new UndergroundSystem();
 * obj->checkIn(id,stationName,t);
 * obj->checkOut(id,stationName,t);
 * double param_3 = obj->getAverageTime(startStation,endStation);
 */

1397. 找到所有好字符串

数位DP+KMP待补

源码直接下载地址: https://pan.quark.cn/s/32a64cc0d812 LKH 算法在中文中的表述为 LKH 算法,它是一种用于处理 TSP(旅行商问题)与 VRP(车辆配送问题)等组合优化挑战的启发式算法,并且该算法是 Lin-Kernighan 启发式方法的进一步发展。该算法的开发与执行过程具有相当的挑战性,然而,它被认为是获取对称旅行商问题最优或接近最优答案的最有效途径之一。LKH 算法的升级版本通过运用灵敏度分析来引导并约束搜索过程,从而使得该算法能够在可接受的时间内为大规模问题找出最优解。通过计算实验的验证,证明该方法具备高效性,能够在不足一秒的时间范围内寻得典型100座城市问题的最优方案,而对于典型的1000座城市问题,也能在不到一分钟的时间框内找到最优解。旅行商问题(TSP)是组合优化领域中研究最为深入的课题之一,该问题可以通过成本矩阵 C 的特性来进行分类。此问题可划分为对称性情形与非对称性情形,同时依据三角不等式的成立与否,可进一步区分为度量性情形与非度量性情形。TSP 的显著地位源于其广泛的实际应用,其中许多应用看似与旅行路径无直接关联。众多现实场景能够以 TSP 的形式来模拟,例如计算机内部布线、车辆路径规划、晶体结构分析、机器人导航控制、印刷电路板打孔定位以及时间表的制定等。TSP 作为一种典型的组合优化课题,其研究对于解决该学科范畴内的其他课题往往具有指导意义。事实上,组合优化领域的诸多突破均可追溯至对 TSP 问题的深入探索。计算方法中广为人知的 branch and bound 技术最初便是在 TSP 的研究背景下被引入的。攻克 TSP 所面临的智力难题亦起到了推动作用,该问题的表述看似简单,却极难求解。当考虑到可能...
内容概要:本文研究了基于深度Q网络(DQN)与非正交多址接入(NOMA)技术相结合的无人机上行链路干扰管理方法,并提供了完整的Python代码实现。通过构建DQN强化学习模型,动态优化无人机在复杂无线环境中的资源分配策略,有效缓解多用户接入带来的同频干扰问题,提升上行链路的通信效率与系统容量。研究充分融合了DQN在决策优化方面的自主学习能力与NOMA在频谱效率提升上的技术优势,重点探讨了在高动态、强干扰的无人机通信场景下,如何实现高效的干扰协调与功率控制。仿真实验验证了该方法在不同用户密度和信道条件下的鲁棒性与优越性,显著降低了误码率并提高了系统吞吐量。; 适合人群:具备一定Python编程能力和机器学习基础,熟悉强化学习或无线通信领域的研究生、科研人员及相关领域工程师。; 使用场景及目标:①研究无人机通信系统中的动态干扰管理和资源调度问题;②学习DQN在通信网络优化中的建模、训练与部署流程;③复现并改进基于NOMA的多用户接入干扰抑制方案,推动智能通信算法的实际应用; 阅读建议:此资源结合理论分析与代码实践,建议读者在掌握强化学习基本原理和无线通信基础知识的前提下,结合所提供的Python代码进行仿真实验,深入理解DQN与NOMA融合机制,并尝试调整网络结构、奖励函数及通信参数以进一步优化系统性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值