24.哀家要长脑子了!

2024-05-04 14:20
文章标签 24 要长 脑子 哀家

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

目录

1.594. 最长和谐子序列 - 力扣(LeetCode)

2.350. 两个数组的交集 II - 力扣(LeetCode)

3.554. 砖墙 - 力扣(LeetCode)

 4.9. 回文数 - 力扣(LeetCode)

 5.13. 罗马数字转整数 - 力扣(LeetCode)

6.58. 最后一个单词的长度 - 力扣(LeetCode)


1.594. 最长和谐子序列 - 力扣(LeetCode)

烦死了烦死了!!总是模模糊糊一知半解的感觉,然后感觉自己能做,搞半天又去看题解了,搞毛啊你。

 这个map中的索引key是num元素,val是这个num元素又多少个啊。

 

class Solution {
public:int findLHS(vector<int>& nums) {unordered_map<int, int> map;for(int num : nums){map[num]++;}int res = 0;for(auto [key,val] : map){if(map.count(key+1)){res = max(res, val + map[key+1]);}}return res;}
};
2.350. 两个数组的交集 II - 力扣(LeetCode)

 

这个题目有意思的地方就在于,它不仅仅只是交集元素出现,这个交集元素在答案它还要重复出现, 出现多少次呢,以出现次数少的那次为标准。

怎么做到的呢:首先以长度小的数组记录到map中。 然后就需要操作map中的val值了,找到一次num并且判断它在map中作为索引所对应的值不为0,就可以把它记录到答案中去,然后要减一。代表它出现的次数少一次了。

class Solution {
public:vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {if(nums1.size() > nums2.size()) return intersect(nums2, nums1);unordered_map<int, int> map;for(int num : nums1){map[num]++;}vector<int> res;for(int num : nums2){if(map.count(num) && map[num] != 0){res.push_back(num);--map[num];}}return res;}
};
3.554. 砖墙 - 力扣(LeetCode)

晕头转向 晕头转向哈哈哈 要不这堵墙撞死我吧

要找穿过砖块数量最少的等价于要找砖块边缘线穿过行数最多的。

我其实没有搞懂,我只能对着代码解释一下我自己的理解 ToT。

哈希表cnt中记录的是,在不同水平位置上的累计砖块宽度值出现的次数。这里的”累计砖块宽度值“指的是从墙最左边开始到某个点为止,所有砖块宽度的和 (但不包括最后一块砖的宽度,因为我们关心的是缝隙的位置),就是找缝隙。

以上图中的样例为准,一行一行遍历得出的map就是这样子的 意思就是,第1块砖后面有缝隙的有3行,第3块砖后面有缝隙的有2行,第5块砖后面有缝隙的有2行,以此类推....

把总的行数减去砖块行数被共享最多的缝隙数,就是可以跨过最少的砖块行数。

class Solution {
public:int leastBricks(vector<vector<int>>& wall) {unordered_map<int,int> cnt;for(auto &widths : wall){int n = widths.size();int sum = 0;for(int i = 0; i < n - 1; i++){sum += widths[i];cnt[sum]++;}}int maxCnt = 0;for(auto& [_, c] : cnt){maxCnt = max(maxCnt, c);}return wall.size() - maxCnt;}
};
 4.9. 回文数 - 力扣(LeetCode)

小姐姐吃完方便面和两个Q蒂还有辣条回来开始水题了 哈哈。。。。

nia,我都不好意思说出来,那行关键代码我没写出又死懒,直接看的答案。我服了妈妈

res = res * 10 + n % 10;

class Solution {
public:bool isPalindrome(int x) {if(x < 0) return false;long long n = x, res = 0;while(n){res = res * 10 + n % 10;n /= 10; }if(res == x)return true;elsereturn false;}
};
 5.13. 罗马数字转整数 - 力扣(LeetCode)

 

 是一道数学技巧题的感觉,当时感觉总是静不下心来,只想快点搞完走了,感觉是不是吃零食吃多了的原因,有点浮躁

其实就是用一个map把他们的映射关系存起来,罗马数字是索引,阿拉伯数字是值。然后判断一下左边的是不是比右边的小,如果是的话就把左边这个数字变为负的,嗯,就是酱紫,为什么你不会做。。。。。。。。

class Solution {
public:int romanToInt(string s) {unordered_map<char, int> map = {{'I', 1},{'V', 5},{'X', 10},{'L', 50},{'C', 100},{'D', 500},{'M', 1000}};int res = 0;for(int i = 0; i < s.size(); i++){if(i < s.size() - 1 && map[s[i]] < map[s[i+1]]){res -= map[s[i]]; }else{res += map[s[i]];}}return res;}
};
6.58. 最后一个单词的长度 - 力扣(LeetCode)

是这样啊:要判断最后一个单词的长度,那就从字符串的末尾开始找噻。看样例可以发现最后一个单词后面还可能有空格,那就把指针先移动到不是空格的位置噻。

class Solution {
public:int lengthOfLastWord(string s) {int n = s.size() - 1;while(s[n] == ' '){n--;}int res = 0;while(n >= 0 && s[n] != ' '){n--, res++;}return res;}
};

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



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

相关文章

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

2024年6月24日-6月30日(ue独立游戏为核心)

试过重点放在独立游戏上,有个indienova独立游戏团队是全职的,由于他们干了几个月,节奏暂时跟不上,紧张焦虑了。五一时也有点自暴自弃了,实在没必要,按照自己的节奏走即可。精力和时间也有限,放在周末进行即可。除非哪天失业了,再也找不到工作了,再把重心放在独立游戏上。 另外,找到一个同样业余的美术,从头做肉鸽游戏,两周一次正式交流即可。节奏一定要放慢,不能影响正常工作生活。如果影响到了,还不如自

兰州理工大学24计算机考研情况,好多专业都接受调剂,只有计算机专硕不接收调剂,复试线为283分!

兰州理工大学(Lanzhou University of Technology),位于甘肃省兰州市,是甘肃省人民政府、教育部、国家国防科技工业局共建高校,甘肃省高水平大学和“一流学科”建设高校;入选国家“中西部高校基础能力建设工程”、教育部“卓越工程师计划”、“111计划”、新工科研究与实践项目、国家大学生创新性实验计划,是国家国防教育特色学校、全国毕业生就业典型经验高校、中国政府奖

人工智能在数字病理切片虚拟染色以及染色标准化领域的研究进展|顶刊速递·24-06-23

小罗碎碎念 本期推文主题:人工智能在数字病理切片虚拟染色以及染色标准化领域的研究进展 这一期的推文是我发自内心觉得为数不多,特别宝贵的一篇推文,原因很简单——可参考的文献相对较少&方向非常具有研究意义&现在不卷。 数字病理方向的老师/同学应该清楚,不同中心提供的切片,染色方案是存在差异的,并且还存在各种质量问题,所以我们在数据预处理的时候,通常会先对切片的质量执行一遍筛选,然后再进行染

leetcode刷题(36)——24.两交换链表中的节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3 题解: 这个题目有2种解法,一个是比较容易想到的循环求解,另外一个是比较难想到的递归求解 解法1:循环求解 关键点在于设置一个pre节点指向链表的头节点,很多链表题目的技巧都是这样设置一个pre

24-6-23-读书笔记(七)-《文稿拾零》豪尔赫·路易斯·博尔赫斯(第三辑)

文章目录 《文稿拾零》阅读笔记记录总结 《文稿拾零》   《文稿拾零》超厚的一本书(570+),看得时间比较长,这本书是作者零散时间写的一些关于文学性质的笔记,读起来还是比较无趣的,非常零散,虽然有很多有趣的观点,但连不起来,不像毛姆的读书笔记,简单记录一下了。 阅读笔记记录 P3 桑德堡身上有一种疲倦的忧伤,一种平原傍晚时的忧伤,泥沙浊流的忧伤,无用却又精确回忆的忧伤,一个

每日文献:2018-02-24

自然选择的分子印迹(精读第三天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 群体遗传学预测 分子群体遗传学的其中一个方向就是从分子变异中区分出中性变异(仅仅受到遗传漂变的影响),找到受

JavaScripts数组里的对象排序的24个方法

1. 使用 Array.prototype.sort() 这是最基本、也是最常用的方法。sort() 方法会原地修改数组,并返回排序后的数组。你需要传入一个比较函数来定义排序逻辑。 const array = [{ name: 'Alice', age: 25 },{ name: 'Bob', age: 22 },{ name: 'Charlie', age: 30 }];// 按照年龄升序

24年下半年各省自考报名时间汇总

24年下半年各省自考报名时间汇总

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-24深度卷积神经网络AlexNet

24深度卷积神经网络AlexNet import torchfrom torch import nnimport liliPytorch as lpimport liliPytorch as lpimport matplotlib.pyplot as pltdropout1 = 0.5#Alexnet架构net = nn.Sequential(nn.Conv2d(1, 96, k