18.哀家要长脑子了!

2024-04-29 04:36
文章标签 18 要长 脑子 哀家

本文主要是介绍18.哀家要长脑子了!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.242. 有效的字母异位词 - 力扣(LeetCode)

用一个flag数组,s出现的 加! t出现的 减! 这样s和t中每个字符出现的次数相同的话,就会加多少减多少,flag数组的元素值都会是0

class Solution {
public:bool isAnagram(string s, string t) {int flag[26] = {0};for(int i = 0; i < s.length(); i++){flag[s[i] - 'a']++;}for(int i = 0; i < t.size(); i++){flag[t[i]  - 'a']--;}for(int i = 0; i < 26; i++){if(flag[i] != 0)return false;}return true;}
};
2.349. 两个数组的交集 - 力扣(LeetCode)

使用set 

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int> res;unordered_set<int> s(nums1.begin(), nums1.end());for(int num: nums2){if(s.find(num) != s.end()){res.insert(num);} }return vector<int>(res.begin(), res.end());}
};

使用标记数组

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int> res;int flag[1005] = {0};for(int num: nums1){flag[num] = 1;}for(int num : nums2){if(flag[num] != 0){res.insert(num);}}return vector<int>(res.begin(), res.end());}
};

 哎呀,其实我觉得这两个没有本质的区别,只是表现方式换了而已

使用标记数组的话,先遍历一边nums1数组,把num1数组中有的元素标记为1,再遍历一遍nums2数组,nums2数组的元素作为flag数组的下标,如果此时元素值不为0,说明该元素(下标)在nums1中出现,可不就是交集吗

使用set的话,先把nums1数组中不同的的元素放到set里面,再遍历一遍nums2。

// 如果在s中没有找到num就会返回set中最后一个元素(end迭代器)

s.find(num) != s.end()  

 如果不等于说明找到了,也是交集啦

一天不写题,别人不知道,自己知道啊

这篇关于18.哀家要长脑子了!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/945122

相关文章

source配置文件不生效 原创 2016年03月14日 18:43:55 3558 问题背景: 升级jdk 1.8之后,启动时报版本编译问题,查看$JAVA_HOME,$JRE_HOME

source配置文件不生效 原创  2016年03月14日 18:43:55 3558 问题背景:       升级jdk 1.8之后,启动时报版本编译问题,查看$JAVA_HOME,$JRE_HOME,没有问题。      初步推断是没有source,sourec .bashrc 之后查看$JAVA_HOME,$JRE_HOME变成1.8版本,但启动时还是报错,这就

Linux下Tomcat开机自动启动 原创 2014年07月18日 12:32:49 标签:Linux /tomcat /shell /启动 22095 Linux下tomcat开机自动启动有两种方法

Linux下Tomcat开机自动启动 原创  2014年07月18日 12:32:49 标签:Linux /tomcat /shell /启动 22095 Linux下tomcat开机自动启动有两种方法,一种是简单,一种是复杂而又专业的,使用shell脚本要实现,我们一般推荐shell脚本启动方式。下面我们分别介绍这两种方法。 1.shell脚本启动 众所周知,在L

软件需求开发的18般武艺

在《软件工程最佳实践》一书中,罗列了18种软件需求方法论,这里逐一介绍如下: 1、引入用户代表的敏捷开发需求 “用户代表”代表的是用户,决定的是需求。有了用户代表,需求的确认和变更,以及需求优先顺序的确定,都会便捷很多。这种方法完美契合敏捷的“交流胜于文档”的思想。唯一的问题是,这种方法论只能适用于小型软件的开发,对于大型软件来说,它就无能为力;甚至某些特定的嵌入式系统软件,如燃油喷射控制系统

【Rust日报】 2019-07-18:美国国会关于Libra的听证会

美国国会关于Libra的听证会 有议员提到,为什么为选择Rust来开发Libra,它够成熟吗?如何担负起其对安全的要求。内有彩蛋:D Read More 是否真的需要构造器 这篇文章 中,讨论了构造器是什么,Rust选择了没有构造器,这背后的权衡是什么?会有什么问题。并且对比了一下Swift的选择。等等,很细致。值得一看。 heim - 获取系统信息的工具项目 这个项目用于,跨平台,获取系统基本

【Rust 日报】2021-07-18 -- Quickwit 高性能对象存储搜索引擎

Quickwit:亚秒级延迟的对象存储搜索引擎 如果用过 ES,会感到非常熟悉,具体包括以下步骤: 第一步:编写索引配置文件 wiki_index_config.json(以 wiki 为例),保存到当前目录: {"default_search_fields": ["body", "title"], // If you do not specify fields in your query, t

【Rust日报】2022-2-18 PostgreSQL 与 Rust 聚合

PostgreSQL 与 Rust 聚合 在使用 PostgreSQL 时,使用类似 SUM(vals) 或者 AVG(vals) 是一个常见的习惯。这些聚合函数为用户提供了一种简单、有效的方法来计算一组输入的结果。那么它们是如何工作的?是什么让它们与普通函数不同?我们如何制作一个聚合函数?还有哪些其他用途?通过 pgx 我们使用 SQL 创建一些基本的聚合方法,然后使用 pgx 0.3.0 的

云计算【第一阶段(18)】磁盘管理与文件系统

一、磁盘基础 磁盘(disk)是指利用磁记录技术存储数据的存储器。 磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。 早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)。 也就是现在说的硬盘就相当于是说我们的磁盘。 二、磁盘结构 磁盘分为: 机械硬盘(HDD)和固态硬盘(SS

VBA学习(18):VBA制作任意工作表均可使用的聚光灯

在需要制作聚光的工作簿,按<ALT+F11>组合键,打开VBE编辑器。在右侧[工程资源管理器窗格]选中ThisWorkbook模块,将以下代码复制粘贴到该模块的代码窗口。 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)Application.ScreenUpdating =

一步步学习SPD2010--第三章节--处理列表和库(18)----删除SP对象

你可以使用SPD删除许多SP对象。例如,可以删除列表、库、文件、网站列、内容类型和列表栏目。然而,不能删除列表项目。任何列表、库、页面、文件或列表项目,无论在浏览器中还是SPD中删除,都保存在回收站,你可以还原。当你删除SP对象,如列表栏目、自定义操作、网站列和内容类型时,他们不再保存在回收站,还原过程也更复杂,并涉及到IT部门。         本次练习中,你删除一个列表、

亚足联官方公布18强赛抽签时间及规则,国足确认位列第五档,你们觉得国足能进世界杯吗?

亚足联官方公布18强赛抽签时间及规则,国足确认位列第五档,你们觉得国足能进世界杯吗? 今天亚足联官方宣布了世预赛18强赛分组抽签仪式时间,本次抽签仪式将于6月27日15点在马来西亚吉隆坡举行。除了抽签时间之外,足联还官方确认了参加世预赛18强的这 18 支球队获得了 2027 年沙特亚洲杯的参赛资格。 按照规则:世预赛亚洲区18强赛将与2024年9月拉开战幕,2025年6月结束,18支球队