360 技术岗秋招笔试原题(2022届)
360 笔试
城市最小面积
题目描述
有一个城市需要修建,给你N个民居的坐标X,Y,问把这么多民居全都包进城市的话,城市所需最小面积是多少(注意,城市为平行于坐标轴的正方形)
输入描述:
第一行为 N,表示民居数目(2≤N≤1000)
输出描述:
城市所需最小面积
输入例子1:
2
0 0
2 2
输出例子1:
4
输入例子2:
2
0 0
0 3
输出例子2:
9
参考代码
public class Main {public static void main(String[] args) {int xMax = Integer.MIN_VALUE;int yMax = Integer.MIN_VALUE;int xMin = Integer.MAX_VALUE;int yMin = Integer.MAX_VALUE;Scanner sc = new Scanner(System.in);int n = sc.naxtInt();while (sc.hasNextLine()) {String[] arr = sc.nextLine().trim().split();int x = Integer.parseInt(arr[0]);int y = Integer.parseInt(arr[1]);xMin = Math.min(xMin, x);yMin = Math.min(yMin, y);xMax = Math.max(xMax, x);yMax = Math.max(yMax, y); }x = Math.max(xMax - xMin, yMax - yMin);System.out.println(x*x);}
}
出现最多子串次数(2020)
题目描述
给定一个字符串 s,在 s 的所有子串中,找到出现次数最多的子串,并输出出现次数
输入描述:
共一行,一个字符串 s,仅由英文小写字母组成,1≤|s|≤10000
输出描述:
一个正整数,表示出现最大次数
输入例子1:
aba
输出例子1:
2
参考代码
public class Main {public static void main(String[] args) {int[] chars = new int[26];int result = 0;Scanner sc = new Scanner(System.in);String s = sc.nextLine().trim();char[] sArr = s.toCharArray();for (int i = 0; i < s.length(); i++) {int ch = sArr[i] - 'a';chars[ch] += 1;ans = Math.max(chars[ch], result);}System.out.println(result);}
}
散步终点(2020)
题目描述
小A在一个笔直道路上散步,起点在路上某处,但是不知道位于那个位置;现将道路划分为 N−1N-1N−1 个等距的部分,道路上的结点标记为 1−N1-N1−N,起点是其中一个;小A每隔一段时间回看下手机走多远,记作 D,但是不确定方向;不过,在两次看手机的间隔中不改变方向,每次看完手机后可能继续向前,也可能回头走;则,散步过程始终在 1−N1-N1−N 的范围内,符合的终点可能有多少个?
输入描述:
输入第一行包含两个正整数 N 和 M,N 表示道路的长度,也就是数轴上点的数量,M 是提供的 D 的数量(N,M≤20000)
接下来有 M 行,每行一个正整数 D,表示小A朝某个方向走了D个单位(D≤20000)
输出描述:
输出仅包含一个整数,表示可能的终点的数量
输入样例:
10 3
5
2
6
输出样例:
8
参考代码
import java.util.Arrays;
import java.util.Scanner;public class TestCode1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int[] dis = new int[m];for (int i = 0; i < m; i++) {dis[i] = sc.nextInt();}int answer = getResult(n, m, dis);System.out.println(answer);}/*** dp[i] 表示某次停下,是否可以到达第 i 个位置* dp[i]=0 表示不能到达, dp[i]=1 表示可以到达* dp0[i]=1 表示可以从任意位置出发* 对于 dis[i] 距离,可以向左或右出发,走完后可到达的位置用 dp1[i] 表示* */public static int getResult(int n, int m, int[] dis) {int[] dp0 = new int[n + 1];int[] dp1 = new int[n + 1];Arrays.fill(dp0, 1);for (int i = 0; i < m; i++) {Arrays.fill(dp1, 0);for (int j = 1; j < n+1; j++) {if (dp0[j] == 1 && j+dis[i] <= n) {dp1[j + dis[i]] = 1;}if (dp0[j] == 1 && j-dis[i] >= 1) {dp1[j - dis[i]] = 1;}}for (int j = 1; j < n+1; j++) {dp0[j] = dp1[j];}}int ans = 0;for (int i = 1; i <= n; i++) {if (dp1[i] == 1) {ans++;}}return ans;}
}
考试及格人数(2022)
题目描述
又到了一学期一次的大学生期末考试。但很多人期末考试的卷面成绩是不能及格的,需要靠较高的平时成绩来拖上去。平时成绩与期末考试的占比已经确定,假设平时成绩占比为 ppp,期末考试占比为 qqq,平时分为 aaa,期末考试分数为 bbb,则总成绩为 (p∗a+q∗b)/100(p*a+q*b)/100(p∗a+q∗b)/100。
(平时分与期末成绩都是整数,但总成绩可以是小数。)饶老师心肠特别好,他希望自己的学生及格率尽可能的高。但他也坚持期末考试分数更高的学生平时成绩也一定要更高。饶老师想知道在这种情况下,他们班的最大及格人数是多少(及格是指总成绩不低于 60 分)。
输入描述:
第一行三个正整数 n, p, q (1 ≤n≤ 200, 0 ≤p≤ 100, 0 ≤q≤100, p+q=100)
第二哈那个 n 个正整数表示 n 个学生的期末考试分数(0 ≤分数≤ 100)
输出描述:
仅一行,一个正整数,表示最大及格人数
输入样例:
2 50 50
50 50
输出样例:
2
输入样例:
2 20 80
输出样例:
51 50
参考代码
import java.util.Arrays;
import java.util.Scanner;public class Solution1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(); // 学生数量int p = sc.nextInt(); // 平时分占比int q = sc.nextInt(); // 期末考试占比int[] stu = new int[n];for (int i = 0; i < n; i++) {stu[i] = sc.nextInt();}Arrays.sort(stu);int a = 100; // 平时分为100int count = 0; // 及格人数for (int i = n - 1; i >= 0; i--) {if (i == n - 1) { // 判断最后一个数int b = stu[i]; // 期末分数bdouble grade = (p * a + q * b) / 100.0;if (grade < 60) {System.out.println(count);break;} else {count++;}} else if (i < n - 1 && stu[i] == stu[i + 1]) {count++;} else { // stu[i] < stu[i + 1]int b = stu[i]; // 期末分数ba--; // 平时分需要比 i+1 同学少double grade = (p * a + q * b) / 100.0;if (grade < 60) {System.out.println(count);break;} else {count++;}}if (i == 0) {System.out.println(count);}}}
}
长城战斗力(2022)
题目描述
长城上有连成一排的 nnn 个烽火台,每个烽火台都有士兵驻守。第 iii 个烽火台驻守着 aiaiai 个士兵,相邻峰火台的距离为 111。另外,有 mmm 位将军,每位将军可以驻守一个峰火台,每个烽火台可以有多个将军驻守,将军可以影响所有距离他驻守的峰火台小于等于 xxx 的烽火台。每个烽火台的基础战斗力为士兵数,另外,每个能影响此烽火台的将军都能使这个烽火台的战斗力提升 kkk。长城的战斗力为所有烽火台的战斗力的最小值。请问长城的最大战斗力可以是多少?
输入描述
第一行四个正整数 n,m,x,k(1 <=x<=n<= 10^5, 0 <=m<= 10^5, 1 <=k<= 10^5)
第二行 n 个整数 ai(0 <=ai<= 10^5)
输出描述
仅一行,一个整数,表示长城的最大战斗力
样例输入
5 2 1 2
4 4 2 4 4
样例输出
6
解释:将军放置到第二个位置和第四个位置,则所有战斗力都为6
参考代码
// 利用差分数组 diff
// O(1) 时间完成区间修改
public class test09{public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int x = sc.nextInt();int k = sc.nextInt();long[] nums = new long[n];for(int i=0; i < n; i++) nums[i] = sc.nextLong();long min = Integer.MAX_VALUE;for(int i=0; i < n; i++){min = Math.min(min, nums[i]);}if(m == 0){System.out.println(min);return ;}// 二分法枚举 target 战斗值最小的数,在给定区间找最后一个满足 check(target)条件的 targetlong l = min, r = min + m * k;while(l < r){long mid = l + (r - l + 1) / 2;if(check(nums, mid, m, x, k)) l = mid;else r = mid -1;}System.out.println(l);}/**从头往右遍历 ai 数组,碰到小于 target 的,就在前面 [i-2 * x, i) 范围内看是否有将军,将军的数量*k 是现有的可以增加的值,如果还是达不到 target,就在当前位置 i 加将军并用 map 记录当前位置加的将军数量,如果当前位置已经没有足够的将军数量可加,那么 check 返回 false如果可以遍历完数组,就返回 true*/private static boolean check(long[] nums, long target, int m, int x, int k){long[] diff = new long[nums.length];diff[0] = nums[0];for(int i=1; i < nums.length; i++) diff[i] = nums[i] - nums[i-1];long cur = 0;for(int i=0; i < nums.length; i++){cur += diff[i];if(cur < target){long use = (target - cur + k - 1) / k; // 向上取整m -= use;if(m < 0) return false;cur += use * k;if(i+2*x+1 < nums.length) diff[i+2*x+1] -= use * k;}}return m >= 0;}
}
360 技术岗秋招笔试原题(2022届)相关推荐
- 【笔试题】京东2017秋招笔试真题
笔试题 京东2017秋招笔试真题 1.进制均值 时间限制 C/C++语言 1000MS;其他语言 3000MS 内存限制 C/C++语言 65536KB;其他语言 589824KB 题目描述 尽管是一 ...
- 腾讯2019秋招笔试真题
1.小Q爬塔 描述:小Q正在攀登一座宝塔,这座塔很特别,塔总共有n曾层,但是没两层之间的净高却不相同,所以造成了小Q爬过每层的时间也不同.如果某一层的高度为x,那么爬过这一层锁需的还是件也是x.小Q孩 ...
- 美团点评2017秋招笔试编程题
美团点评2017秋招笔试编程题 1, 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步.求玩家走到第n步(n<=骰子最大点数且是 ...
- 腾讯2018秋招笔试真题(2)
腾讯2018秋招笔试真题 3.画家小Q [题目描述]画家小 Q 又开始他的艺术创作.小 Q 拿出了一块有 NxM 像素格的画板, 画板初始状态是空白 的,用'X'表示. 小 Q 有他独特的绘画技巧,每 ...
- 腾讯2018秋招笔试真题(1)
腾讯2018秋招笔试真题 小Q的歌单 [题目描述]小 Q 有 X 首长度为 A 的不同的歌和 Y 首长度为 B 的不同的歌,现在小 Q 想用这些歌组成一个 总长度正好为 K 的歌单,每首歌最多只能在歌 ...
- 腾讯2018秋招笔试真题——安排机器
本文参考自腾讯2018秋招笔试真题--安排机器 查看原文: 原文地址 题目描述:小Q的公司最近接到m个任务,第i个任务需要Xi的时间去完成,难度等级为yi. 小Q拥有n ...
- 秋招笔试算法题——电容充电
秋招笔试算法题--电容充电 牛客网<笔试真题精选2019> 字节跳动2018秋招笔试题4 [题目描述]有一台用电容组成的计算器,其中每个电容组件都有一个最大容量值(正整数). 对于单个电容 ...
- 滴滴出行2017秋招笔试真题-编程题汇总_Java实现
滴滴出行2017秋招笔试真题-编程题汇总_Java实现 注:有的题参考别人的思路,用我最容易理解的代码编的程序,所以可以不能最优的解法,后续我会进行更新,只是一个思路,我的笔记而已,所以不喜勿喷~~~ ...
- 2023算法岗秋招笔试面试记录
面经 秋招笔试面试全记录 字节-电商 字节实习一面: 二分类的损失函数是什么,怎么算? 多分类的损失函数怎么算? 如果文本分类的标签有多个,比如一个文本同时属于多个label那怎么办? 如果文本分类里 ...
- 小米2019秋招笔试真题--厨艺大赛奖金
小米食堂每年都会举办一次厨艺大赛,假设参赛的厨师一共有n位(n < 1000),比赛结束后没有公布评分,但是站在领奖台上的一排厨师中每位厨师都能看到与自己相邻的厨师(左或者右)里评分比自己低(看 ...
最新文章
- php开源文件管理,搭建php开源的文件管理器eXtplorer
- MATLAB中的vpa函数简单实用记录——精度控制
- 通过扩展RandomAccessFile类使之具备Buffer改善I/O性能--转载
- poj 1218(经典开关问题,模拟)
- 如何正确选择仓储物流供应商?
- 基于JAVA+SpringMVC+MYSQL的实验室预约管理系统
- PDF组件 Aspose.Pdf V17.6发布 | 新增单元格文档旋转功能
- beautifulsoup解析动态页面div未展开_实战|Python轻松实现动态网页爬虫(附详细源码)...
- VXLAN详解(二)
- 在kubernetes上实现tomcat日志的持久化
- 编译原理(龙书):第三章部分题目参考答案
- android信鸽推送demo_android studio 集成腾讯信鸽推送
- U8 用友 ERP 库存查询SQL
- niosii spi 外部_NIOS2随笔——SD卡之SPI操作
- linux怎么查看hwaddr_Linux 查看网卡的MAC地址
- 江苏省2021年高考成绩查询有分数吗,江苏省2021年普通高考录取分数线公布
- 计算机6种文件格式,中国象棋电脑PGN文件格式
- 计算机广告设计发展前景,2018广告设计与制作专业就业前景和就业方向分析
- 规划过程组-项目管理-PMP
- 金蝶eas系统服务器地址,金蝶eas更换服务器地址
热门文章
- 电脑开启后,进入桌面黑屏,任务管理器可以用(排除是硬件问题)
- css怎么设置图片卷角效果,用css3制作纸张效果(外翻卷角)
- iOS 上的FlexBox布局
- Android 通过AlarmClock设置系统闹钟
- Java POI 设置字体下划线、方框打勾、字体加粗
- w ndows无法完成格式化,windows 无法完成格式化2种解决方案
- w ndows无法完成格式化,Windows无法完成格式化怎么办呢?教你解决U盘问题!
- 《李尔王》:重拾李尔王的话语权力
- appium+python闲鱼采购自动化测试实战
- 基于普中A2开发板(STC80C51单片机)呈现的中断小实验代码电路及其效果。