面试题 17.10. 主要元素
难度简单165
数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1
。请设计时间复杂度为 O(N)
、空间复杂度为 O(1)
的解决方案。
示例 1:
1 | 输入:[1,2,5,9,5,9,5,5,5] |
示例 2:
1 | 输入:[3,2] |
示例 3:
1 | 输入:[2,2,1,1,1,2,2] |
通过次数62,390
提交次数109,523
摩尔投票
1 | class Solution { |
难度简单165
数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1
。请设计时间复杂度为 O(N)
、空间复杂度为 O(1)
的解决方案。
示例 1:
1 | 输入:[1,2,5,9,5,9,5,5,5] |
示例 2:
1 | 输入:[3,2] |
示例 3:
1 | 输入:[2,2,1,1,1,2,2] |
通过次数62,390
提交次数109,523
1 | class Solution { |
难度中等192
给你一个二元数组 nums
,和一个整数 goal
,请你统计并返回有多少个和为 goal
的 非空 子数组。
子数组 是数组的一段连续部分。
示例 1:
1 | 输入:nums = [1,0,1,0,1], goal = 2 |
示例 2:
1 | 输入:nums = [0,0,0,0,0], goal = 0 |
提示:
1 <= nums.length <= 3 * 104
nums[i]
不是 0
就是 1
0 <= goal <= nums.length
通过次数27,053
提交次数50,435
1 | class Solution { |
https://leetcode-cn.com/problems/binary-subarrays-with-sum/comments/380146
难度中等61收藏分享切换为英文接收动态反馈
给你一个数组 orders
,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi]
,其中 customerNamei
是客户的姓名,tableNumberi
是客户所在餐桌的桌号,而 foodItemi
是客户点的餐品名称。
请你返回该餐厅的 点菜展示表 。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。接下来每一行中的项则表示每张餐桌订购的相应餐品数量,第一列应当填对应的桌号,后面依次填写下单的餐品数量。
注意:客户姓名不是点菜展示表的一部分。此外,表中的数据行应该按餐桌桌号升序排列。
示例 1:
1 | 输入:orders = [["David","3","Ceviche"],["Corina","10","Beef Burrito"],["David","3","Fried Chicken"],["Carla","5","Water"],["Carla","5","Ceviche"],["Rous","3","Ceviche"]] |
示例 2:
1 | 输入:orders = [["James","12","Fried Chicken"],["Ratesh","12","Fried Chicken"],["Amadeus","12","Fried Chicken"],["Adam","1","Canadian Waffles"],["Brianna","1","Canadian Waffles"]] |
示例 3:
1 | 输入:orders = [["Laura","2","Bean Burrito"],["Jhon","2","Beef Burrito"],["Melissa","2","Soda"]] |
提示:
1 <= orders.length <= 5 * 10^4
orders[i].length == 3
1 <= customerNamei.length, foodItemi.length <= 20
customerNamei
和 foodItemi
由大小写英文字母及空格字符 ' '
组成。tableNumberi
是 1
到 500
范围内的整数。1 |
|
难度中等0
我们称一个数字字符串是 好数字 当它满足(下标从 0 开始)偶数 下标处的数字为 偶数 且 奇数 下标处的数字为 质数 (2
,3
,5
或 7
)。
"2582"
是好数字,因为偶数下标处的数字(2
和 8
)是偶数且奇数下标处的数字(5
和 2
)为质数。但 "3245"
不是 好数字,因为 3
在偶数下标处但不是偶数。给你一个整数 n
,请你返回长度为 n
且为好数字的数字字符串 总数 。由于答案可能会很大,请你将它对 109 + 7
取余后返回 。
一个 数字字符串 是每一位都由 0
到 9
组成的字符串,且可能包含前导 0 。
示例 1:
1 | 输入:n = 1 |
示例 2:
1 | 输入:n = 4 |
示例 3:
1 | 输入:n = 50 |
提示:
1 <= n <= 10^15
计算20的n/2次幂,当n为偶数时,直接返回快速幂的结果,
如果n为奇数时,返回n/2次幂再乘以5
注意过程中的取余数计算!
1 | class Solution { |
难度中等2
你正在玩一款电子游戏,在游戏中你需要保护城市免受怪物侵袭。给你一个 下标从 0 开始 且长度为 n
的整数数组 dist
,其中 dist[i]
是第 i
个怪物与城市的 初始距离(单位:米)。
怪物以 恒定 的速度走向城市。给你一个长度为 n
的整数数组 speed
表示每个怪物的速度,其中 speed[i]
是第 i
个怪物的速度(单位:米/分)。
怪物从 第 0 分钟 时开始移动。你有一把武器,并可以 选择 在每一分钟的开始时使用,包括第 0 分钟。但是你无法在一分钟的中间使用武器。这种武器威力惊人,一次可以消灭任一还活着的怪物。
一旦任一怪物到达城市,你就输掉了这场游戏。如果某个怪物 恰 在某一分钟开始时到达城市,这会被视为 输掉 游戏,在你可以使用武器之前,游戏就会结束。
返回在你输掉游戏前可以消灭的怪物的 最大 数量。如果你可以在所有怪物到达城市前将它们全部消灭,返回 n
。
示例 1:
1 | 输入:dist = [1,3,4], speed = [1,1,1] |
示例 2:
1 | 输入:dist = [1,1,2,3], speed = [1,1,1,1] |
示例 3:
1 | 输入:dist = [3,2,4], speed = [5,3,2] |
提示:
n == dist.length == speed.length
1 <= n <= 105
1 <= dist[i], speed[i] <= 105
通过次数2,916
提交次数9,873
首先计算每个怪物到达城市的时间,根据到达时间排序,先消灭到达时间小的怪物,如果某个怪物的到达时间小于当前的时间,那么任务失败,记录下过程中的最大值。
1 | class Solution { |
难度中等297
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。
示例 1:
1 | 输入: |
示例 2:
1 | 输入: |
示例 3:
1 | 输入: |
1 | class Solution { |
1 | class Solution { |
1 | class Solution { |
为啥自己总散发一种生人勿近的气息啊
在理发店好像突然回到了几个月之前的场景,明明记得两个人的一模一样对话好像在几个月之前发生过一次,此时的我究竟是哪个时空中的我😰
今天听到的陌生人一句最有感觉的话是:
我不希望我的孩子今后能跨越阶层,只想他能够做一个快乐善良的人,我能多努力一些为他提供更多的试错空间。
看到了一个好棒的妈妈和孩子,孩子摔倒了不是第一时间跑上去,而是鼓励孩子自己爬起来,孩子爬起来了还夸奖孩子做的真棒(孩子也好棒,摔倒了一点没哭,还自己主动爬起来)。
自己开心最重要
多大仇啊,至于吗
世事岂能尽如^(* ̄(oo) ̄)^
继续加油吧,须知少时凌云志,曾许人间第一流
一地鸡毛紧接着一地鸡毛
难度简单134
小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下:
给定总玩家数 n
,以及按 [玩家编号,对应可传递玩家编号]
关系组成的二维数组 relation
。返回信息从小 A (编号 0 ) 经过 k
轮传递到编号为 n-1 的小伙伴处的方案数;若不能到达,返回 0。
示例 1:
输入:
n = 5, relation = [[0,2],[2,1],[3,4],[2,3],[1,4],[2,0],[0,4]], k = 3
输出:
3
解释:信息从小 A 编号 0 处开始,经 3 轮传递,到达编号 4。共有 3 种方案,分别是 0->2->0->4, 0->2->1->4, 0->2->3->4。
示例 2:
输入:
n = 3, relation = [[0,2],[2,1]], k = 2
输出:
0
解释:信息不能从小 A 处经过 2 轮传递到编号 2
限制:
2 <= n <= 10
1 <= k <= 5
1 <= relation.length <= 90, 且 relation[i].length == 2
0 <= relation[i][0],relation[i][1] < n 且 relation[i][0] != relation[i][1]
1 | class Solution { |
1 | class Solution { |
1 | class Solution { |
难度困难200
给你一个数组 routes
,表示一系列公交线路,其中每个 routes[i]
表示一条公交线路,第 i
辆公交车将会在上面循环行驶。
routes[0] = [1, 5, 7]
表示第 0
辆公交车会一直按序列 1 -> 5 -> 7 -> 1 -> 5 -> 7 -> 1 -> ...
这样的车站路线行驶。现在从 source
车站出发(初始时不在公交车上),要前往 target
车站。 期间仅可乘坐公交车。
求出 最少乘坐的公交车数量 。如果不可能到达终点车站,返回 -1
。
示例 1:
1 | 输入:routes = [[1,2,7],[3,6,7]], source = 1, target = 6 |
示例 2:
1 | 输入:routes = [[7,12],[4,5,15],[6],[15,19],[9,12,13]], source = 15, target = 12 |
提示:
1 <= routes.length <= 500
.1 <= routes[i].length <= 105
routes[i]
中的所有值 互不相同sum(routes[i].length) <= 105
0 <= routes[i][j] < 106
0 <= source, target < 106
通过次数20,689
提交次数49,356
1 | class Solution { |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true