#青训营笔记创作活动# 问题描述
小F被神秘力量带入了一个魔幻世界,这里危机四伏。为了在异世界中生存,小F需要找到安全区。异世界可以被表示为一个大小为n x m的二维数组,每个格子的值代表该位置的危险程度。
小F的能力值为X,当某个格子的危险程度小于等于X时,这个格子是安全的。如果多个安全的格子相邻(上下左右连通),它们可以构成一个安全区。你需要帮助小F计算出一共有多少个安全区。
测试样例
样例1:
输入:n = 3, m = 3, X = 4, a = [[2, 3, 3], [3, 3, 3], [3, 3, 3]]
输出:1
样例2:
输入:n = 2, m = 2, X = 5, a = [[6, 6], [6, 4]]
输出:1
样例3:
输入:n = 3, m = 3, X = 3, a = [[1, 2, 2], [2, 3, 3], [3, 4, 5]]
输出:1
题解:
一个原二维数组,新建一个visited数组记录是否经过,直接全部遍历,遇到安全值小于能力值且没经过的点就进入while循环。while循环通过队列实现安全区域的搜寻,通过maxnum记录安全区域的个数。
- 屏蔽作者: Tomtu
- 举报
今天是12月29日,Day 22今天学习了《我被骂了,但我学会了如何构造高性能的树状结构》,扁平树状结构真的好,以前写递归评论的时候就是有类似的思想,包括撤销重组感觉也可以用类似的 #青训营笔记创作活动# 思想。
分享
10
45
- 3 赞 · 4 评论
- #青训营笔记创作活动# 问题描述
小R从班级中抽取了一些同学,每位同学都会给出一个数字。已知在这些数字中,某个数字的出现次数超过了数字总数的一半。现在需要你帮助小R找到这个数字。
测试样例
样例1:
输入:array = [1, 3, 8, 2, 3, 1, 3, 3, 3]
输出:3
样例2:
输入:array = [5, 5, 5, 1, 2, 5, 5]
输出:5
样例3:
输入:array = [9, 9, 9, 9, 8, 9, 8, 8]
输出:9
方法
摩尔投票算法 是解决这个问题的一种高效算法。这个算法的核心思想是通过“投票”的方式,逐步排除掉不可能的候选数字,最终得到一个出现次数最多的数字。由于题目中说明有一个数字的出现次数超过了数组的一半,因此摩尔投票算法能够有效解决问题。
摩尔投票算法的工作原理:
投票阶段:首先选择一个候选数字,并将它的票数初始化为 1。然后遍历数组中的每个数字:
如果当前数字和候选数字相同,票数加 1。
如果当前数字和候选数字不同,票数减 1。如果票数减为 0,则选取当前数字作为新的候选数字,并将票数重置为 1。
确认阶段:在摩尔投票阶段结束后,我们得到一个候选数字。由于题目保证有一个数字出现次数超过数组总数的一半,因此最后的候选数字就是我们要找的数字。
代码实现:
代码解释
摩尔投票算法:
我们使用 candidate 来记录当前的候选数字,count 来记录候选数字的票数。
如果票数为零,说明之前的候选数字被“淘汰”了,我们就将当前数字设为新的候选数字,并将票数设为 1。
如果当前数字与候选数字相同,票数加 1。
如果当前数字与候选数字不同,票数减 1。
保证正确性:
根据题目描述,存在一个数字的出现次数超过数组总长度的一半,因此最终的 candidate 一定是正确的数字。
测试用例
输入:[1, 3, 8, 2, 3, 1, 3, 3, 3]
输出:3,3 出现了 5 次,超过了一半。
输入:[5, 5, 5, 1, 2, 5, 5]
输出:5,5 出现了 5 次,超过了一半。
输入:[9, 9, 9, 9, 8, 9, 8, 8]
输出:9,9 出现了 5 次,超过了一半。1 赞 · 2 评论 - 先说结论:和老婆认识九年,相恋七年,结婚两年,现在我和老婆都想离婚
学生时期和老婆感情很好,毕业后一切都变了。
彩礼问题:我和老婆家里都是普通家庭,我毕业前家里还出了变故,所以结婚这件事基本靠不到我家里,我和老婆都是江西的,在我们那里彩礼基本都是四五十起步(不过女方基本都会带回),老婆身边的亲戚邻居近几年娶媳妇和嫁人基本都是五六十万的,老婆并不比他们差,所以当时老婆家里人觉得我老婆也值这个价。但是这个价当时订婚的时候我家里肯定是拿不出来的,我也刚开始工作也没攒多少钱,老婆就和她家里人商量给我拿38万就可以了,我想着38万没问题,我攒个3到4年就有了(当时22年7月毕业了,大概攒到个27年初就有了),老婆当时说只等我到27年,不然年纪大了她等不起,并且说帮我一起攒彩礼(最后也没有帮我攒,因为这个我们还吵架了。)鬼使神差的是,23年初过年我老婆说带我去她家给她父母见见,到时候也就提着一大堆礼物去了,后面和老丈人账丈母娘聊的都很好,聊着聊着就开始将订婚结婚的事了,但是当时我拿不出来那么多钱,只有十万,并且不想问家里要钱(这个理由后面会和大家说),老婆说让我去借,说实话我不是很想借,因为借了就要还人情,老婆说现在结婚哪个家里不借钱,当时她哥哥结婚她家也借钱了,说我不愿意为了娶她去借钱就不爱他之类的。于是就和老婆说,我能不能先拿十万,然后借28万,结完婚我们把28万还回去,我不想要家里的钱,老婆同意了。但是到后面真正订婚的时候老婆反悔了,我说你不是同意了嘛,她说他以为我是开玩笑的,说我想白嫖她。我当时的想法是相当于我们提前结婚了,27年的时候我们还是有38.8万的呀。借钱的时候我和我妈说好了这个钱到时候我去还,但是后面变成我爸妈去还了。在这里双方都憋着一口气,觉得都不理解对方。20 赞 · 477 评论