面试题 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 * 104nums[i] 不是 0 就是 10 <= 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^4orders[i].length == 31 <= customerNamei.length, foodItemi.length <= 20customerNamei 和 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.length1 <= n <= 1051 <= 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 <= 101 <= k <= 51 <= relation.length <= 90, 且 relation[i].length == 20 <= 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 <= 105routes[i] 中的所有值 互不相同sum(routes[i].length) <= 1050 <= routes[i][j] < 1060 <= 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