【每日刷题】Day127

【每日刷题】Day127

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 349. 两个数组的交集 - 力扣(LeetCode)

2. LCR 022. 环形链表 II - 力扣(LeetCode)

3. 692. 前K个高频单词 - 力扣(LeetCode)

1. 349. 两个数组的交集 - 力扣(LeetCode)

//思路:set 数据结构的使用。

//本道题在之前刷过,不过在学习了 set 后,使用 set 来做这道题简直就是降维打击。

class Solution {

public:

    vector<int> intersection(vector<int>& nums1, vector<int>& nums2)

    {

        vector<int> ans;

        set<int> s1,s2;

//将 num1,nums2分别塞入 set 中,set既帮我们完成了排序的工作,也帮我们完成了去重的工作

        s1.insert(nums1.begin(),nums1.end());

        s2.insert(nums2.begin(),nums2.end());

        auto p1 = s1.begin(),p2 = s2.begin();

//后续我们就可以用两个迭代器分别遍历两个 set ,记录相同的值就是交集元素

        while(p1!=s1.end()&&p2!=s2.end())

        {

            if(*p1<*p2) p1++;

            else if(*p1>*p2) p2++;

            else

            {

                ans.push_back(*p1);

                p1++;

                p2++;

            }

        }

        return ans;

    }

};

2. LCR 022. 环形链表 II - 力扣(LeetCode)

//思路:set 的使用。

//同样的,本道题在之前刷的时候我们用的方法是快慢指针,这里我们使用set依然是降维打击。

class Solution {

public:

    ListNode *detectCycle(ListNode *head)

    {

        set<ListNode*> s;

        while(head)

        {

            if(s.count(head)) return head;//因为set不能存储重复元素,因此如果遍历到的节点指针已经存储在了 set中,则当前节点就是环的入口

            s.insert(head);

            head = head->next;

        }

        return nullptr;

    }

};

3. 692. 前K个高频单词 - 力扣(LeetCode)

//思路:set 和 multiset的灵活运用。

//本题 set 和 multiset 来配合使用还是挺绕的,来作图分析

class Solution {

public:

    vector<string> topKFrequent(vector<string>& words, int k)

    {

        vector<string> ans;

        set<int,greater<int>> s;

        multiset<string> ms;

        for(int i = 0;i<words.size();i++) ms.insert(words[i]);//将所有字符串放入 ms 中

        for(auto it:ms) s.insert(ms.count(it));//记录字符串的出现次数,按照降序排序,排除重复的记录

        auto its = s.begin();

        while(k)

        {

            auto itms = ms.begin();//遍历 multiset,找当前出现次数最多的字符串

            while(k&&itms!=ms.end())

            {

                if((*its==ms.count(*itms)&&!ans.size())||(*its==ms.count(*itms)&&*itms!=ans.back()))//处理重复的记录情况,如果这一趟就将 k 个出现最多的找完了,则结束

                {

                    ans.push_back(*itms);

                    k--;

                }

                itms++;

            }

            its++;//当前最多的出现次数找完后 its++,去找出现次数第二多的

        }

        return ans;

    }

};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146068.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

软设9.20

1 已知一个文件中出现的各字符及其对应的频率如下表所示。若采用定长编码&#xff0c;则该文件中字符的码长应为()。若采用Hufman编码&#xff0c;则字符序列“face”的编码应为()。 1.&#xff08;&#xff09; A.2 B.3 C.4 D.5 2.&#xff08;&#xff09; A.110001001101…

工程师 - PFM介绍

在电子电路设计中&#xff0c;PFM&#xff08;Pulse Frequency Modulation&#xff0c;脉冲频率调制&#xff09;是一种调制技术&#xff0c;其主要特点是在负载变化时调整脉冲的频率&#xff0c;而保持脉冲的宽度&#xff08;时间长度&#xff09;相对恒定。与PWM&#xff08;…

详解Vue事件总线的原理与应用:EventBus

Vue 事件总线 - 组件通信的桥梁 引言 在 Vue.js 开发中&#xff0c;组件通信是一个重要的话题。Vue 提供了多种方式来实现不同组件之间的通信&#xff0c;譬如Props、 $emit、Ref实例、Vuex状态管理及事件总线等等&#xff0c;可谓是五花八门&#xff0c;它们之间使用各有优缺…

4款音频转文字在线转换工具帮你解锁新的记录模式。

越来越多的人都知道使用一些工具来将音频直接转换成文字&#xff0c;这样便省去了手动输入的麻烦。而且使用音频进行记录也能够提高工作的效率&#xff0c;像会议记录&#xff0c;课堂教学记录&#xff0c;采访录音等。如果大家有需要将自己的音频转成文字&#xff0c;可以试试…

STM32 使用 CubeMX 实现按键外部中断

目录 问题背景知识参考需要改什么注意尽量不要在中断函数使用 循环函数做延时中断函数中延时方法调试 问题 我想实现按钮触发紧急停止类似功能&#xff0c;需要使用按键中断功能。 背景知识 GPIO 点亮 LED。stm32cubemx hal学习记录&#xff1a;GPIO输入输出。STM32—HAL库 …

[c++进阶(八)]STL容器适配器之queue

1.前言 和stack一样&#xff0c;队列也没有把他放在容器的一栏里面&#xff0c;而是把他放在容器适配器的一栏。这也是因为queue是使用了别人的相关接口&#xff0c;空间然后来封装自己的内容&#xff0c;最后再给上层用户使用。 2.队列 队列的性质就是先进先出&#xff0c;他…

黑科技网址推荐:特殊功能的工具网址

1、【网站】WebRTC—— 点对点网络摄像头实时监控 &#xff1b; 网址&#xff1a;https://webcamera.cc/zh 先连接摄像头&#xff0c;将作为摄像头的设备进入摄像头页面&#xff0c;输入连接ID&#xff0c;点连接。 监控端进入监控页面&#xff0c;填入与摄像头相同的连接ID&…

Java中ArrayList和LinkedList的比较

注&#xff1a;Joshua Bloch 就是 LinkedList 的作者 在Java中&#xff0c;ArrayList和LinkedList都是常用的列表实现类&#xff0c;它们都实现了List接口&#xff0c;但在内部工作原理和性能方面有显著差异。 ArrayList&#xff1a;基于动态数组实现。随着元素的增加&#x…

spark之不同序列化对比

一&#xff0c;spark的rdd的序列话不同介绍 下面是使用不同序列化后的占用资源和数据大小 2&#xff0c;sparksql中序列化的区别 sparksql中使用序列化和不使用差别不大&#xff0c;英文sparksql中默认使用了encode自己实现的序列化方法&#xff0c;加上与不加序列化差别不大…

C++ day03

思维导图 头文件 #ifndef SEQLIST_H #define SEQLIST_Husing datatype int;class seqlist { private:datatype *ptr; // 动态数组指针int size; // 顺序表最大容量int len 0; // 当前长度public:void init(int n); // 初始化顺序表bool empty(); …

RflySim工具链常见问题答疑

1. RflySim结合硬件能不能实现无人机颜色巡线呢&#xff1f; 可以&#xff0c;内置有一个通过相机识别来攻击小球的实验&#xff0c;可见&#xff1a;【RflySim安装路径】\RflySimAPIs\8.RflySimVision\1.BasicExps\1-VisionCtrlDemos\e3_ShootBall&#xff0c;不过要想实现无人…

elasticsearch同步mysql方案

文章目录 1、1. 使用数据库触发器2. 使用定时任务3. 监听MySQL二进制日志&#xff08;binlog&#xff09;4. 使用数据管道5. 使用第三方工具或服务6. 编写自定义脚本注意事项 2、1. 使用Logstash步骤&#xff1a;示例配置&#xff1a; 2. 使用Debezium步骤&#xff1a; 3. 自定…

ES6标准---【九】【学习ES6标准看这一篇就够了!!!】

目录 以往ES6文章 JavaScript在浏览器中的加载 传统方法 加载规则 注意 顶部变量外部不可用 this关键字返回undefined JavaScript的循环加载 ES6模块的循环加载 块级作用域 let取代var 全局变量和线程安全 以往ES6文章 ES6标准---【一】【学习ES6看这一篇就够了&…

小小扑克牌算法

1.定义一个扑克牌类Card&#xff1a; package democard; public class Card {public String suit;//表示花色public int rank;//表示牌点数Overridepublic String toString() {return "{"suit rank"}";}//实例方法&#xff0c;初始化牌的点数和花色public…

【Redis入门到精通三】Redis核心数据类型(List,Set)详解

目录 Redis数据类型 ​编辑 1.List类型 &#xff08;1&#xff09;常见命令 &#xff08;2&#xff09;内部编码 2.Set类型 &#xff08;1&#xff09;常见命令 &#xff08;2&#xff09;内部编码 Redis数据类型 查阅Redis官方文档可知&#xff0c;Redis提供给用户的核…

【类型黑市】指针

大家好我是#Y清墨&#xff0c;今天我要介绍的是指针。 意义 指针就是存放内存地址的变量。 分类 因为变量本身是分类型的&#xff0c;我们学过的变量类型有 int, long long, char, double, string, 甚至还有结构体变量。 同样&#xff0c;指针也分类型&#xff0c;如果指针指向…

完美转发、C++11中与线程相关的std::ref

目录 模板中的万能引用 std::forward实现完美转发 C11中与线程相关的std::ref 线程函数参数 用函数指针作为线程函数 用lambda表达式作为线程函数 模板中的万能引用 void Func(int& x) {cout << "左值引用" << endl; } void Func(int&&am…

3. Internet 协议的安全性

3. Internet 协议的安全性 (1) 常用网络协议的功能、使用的端口及安全性 HTTP协议 功能:用于从服务器传输超文本到本地浏览器。端口:默认是80端口。安全性:不提供数据加密,存在数据泄露和中间人攻击风险。使用HTTPS协议(443端口)可以增强安全性。FTP协议 功能:实现文件的…

IPv6(四)

文章目录 Path MTUIPv6配置 Path MTU IPv4 对于数据过大的数据包会执行切片操作&#xff0c;但是切片有可能会造成设备性能的降低 IPv6使用Path MTU来传递数据过大的数据包 依次会协商最小的 MTU 单元为了减少中间转发设备的压力&#xff0c;中间转发设备不对 IPv6 报文进行分片…

re题(36)BUUCTF-[WUSTCTF2020]Cr0ssfun

BUUCTF在线评测 (buuoj.cn) 查一下壳&#xff0c;64位elf文件 ctrle找到main()函数 只进行了一个比较函数&#xff0c;看一下check() 猜测是a1中存放的flag&#xff0c;往下继续查看函数 把a1中存的数据都给出来了 写个脚本&#xff0c;输出一下a1&#xff0c;直接就是我们要的…