腾讯2024实习生在线笔试-0331

Q1 小红的图上染色

小红拿到了一个无向图,其中一些边被染成了红色。

小红定义一个点是“好点”,当且仅当这个点的所有邻边都是红边。

现在请你求出这个无向图“好点”的数量。

注:如果一个节点没有任何邻边,那么它也是好点。

输入描述

第一行输入两个正整数n,m ,代表节点的数量和边的数量。

接下来的m行,每行输入两个正整数u, v和一个字符chr,代表节点 u 和节点v 有一条边连接。如果 chr 为’R’,代表这条边被染红;’W’代表未被染色。

1 <= n, m <= 10^5 1 <= u, v <= n

输出描述

一个整数,代表“好点”的数量。

示例 1

输入

4 4
1 2 R
2 3 W
3 4 W
1 4 R

输出

1

说明

只有 1 号节点是好点

我的代码

package oj1;import java.util.Scanner;/*** @Description* @Author chenyi0008* @Date 2024/3/31*/
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(); // 节点int m = sc.nextInt(); // 边boolean[] arr = new boolean[100010];int a, b;String c;for (int i = 0; i < m; i++) {a = sc.nextInt();b = sc.nextInt();c = sc.next();if(c.equals("W")){arr[a] = true;arr[b] = true;}}int sum = 0;for (int i = 1; i <= n; i++) {if(arr[i] == false)sum ++;}System.out.println(sum);}
}

通过100%

这题没啥难 会分析就行

Q2 小红的链表断裂

小红拿到了一个链表。她准备将这个链表断裂成两个链表,再拼接到一起,使得链表从头节点到尾部升序。你能帮小红判断能否达成目的吗?

给定的为一个链表数组,你需要对于数组中每个链表进行一次“是”或者“否”的答案回答,并返回布尔数组。

每个链表的长度不小于 2,且每个链表中不包含两个相等的元素。所有链表的长度之和保证不超过10^5

示例 1

输入

[{1,2,3},{2,3,1},{3,2,1}]

输出

[true,true,false]

说明

第三个链表无论怎么操作都不满足条件。

我的代码

package oj2;/*** @Description* @Author chenyi0008* @Date 2024/3/31*/
public class Solution {public static void main(String[] args) {ListNode l11 = new ListNode(1);ListNode l12 = new ListNode(2);ListNode l13 = new ListNode(3);ListNode[] listNodes = new ListNode[1];l11.next =l12;l12.next = l13;listNodes[0] = l11;Solution solution = new Solution();boolean[] booleans = solution.canSorted(listNodes);for (boolean aBoolean : booleans) {System.out.println(aBoolean);}}public boolean[] canSorted (ListNode[] lists) {int len = lists.length;boolean[] ans = new boolean[len];for (int i = 0; i < lists.length; i++) {ListNode node = lists[i];boolean flag = false;boolean ji = false;int first = node.val;int tmp = node.val;while (node.next != null){node = node.next;if(tmp > node.val && flag == false){flag = true;}else if(tmp > node.val && flag == true){ji = true;break;}tmp = node.val;}if(!ji && first > tmp || flag == false) ans[i] = true;
//            if(ji) ans[i] = false;}return ans;}
}

通过100%

没啥难的,主要是花在debug的时间有点长

Q3 小红的连通图

小红拿到了一个有n个节点的无向图,这个图初始并不是连通图。

现在小红想知道,添加恰好一条边使得这个图连通,有多少种不同的加边方案?

输入描述

第一行输入两个正整数n, m,用空格隔开。

接下来的m行,每行输入两个正整数u,v,代表节点u和节点v之间有一条边连接。

1 <= n, m <= 10^5

1 <= u, v <= n

保证给出的图是不连通的。

输出描述

一个整数,代表加边的方案数。

示例 1

输入

4 2
1 2
3 4

输出

4

说明

添加边 (1,3) 或者 (1,4) 或者 (2,3) 或者 (2,4) 都是可以的。

示例 2

输入

4 1
1 3

输出

0

说明

无法变成连通图

我的代码

package oj3;import java.util.HashMap;
import java.util.HashSet;
import java.util.Scanner;/*** @Description* @Author chenyi0008* @Date 2024/3/31*/
public class Main {static int[] arr;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();arr = new int[n + 1];for (int i = 1; i < arr.length; i++) {arr[i] = i;}for (int i = 0; i < m; i++) {int a = sc.nextInt();int b = sc.nextInt();if(find(a) != find(b)){if(arr[a] == a)arr[a] = find(b);else if(arr[b] == b)arr[b] = find(a);}}for (int i = 1; i <= n; i++) {arr[i] = find(i);}HashSet<Integer> set = new HashSet<>();HashMap<Integer, Integer> map = new HashMap<>();int[] tmp = new int[100];int sum = 0;for (int i = 1; i < arr.length; i++) {int father = find(arr[i]);if(!set.contains(father)){sum ++;tmp[sum] = father;set.add(father);map.put(father, 1);}else {Integer value = map.get(father);map.put(father, value + 1);}if(sum > 2){
//                System.out.println("超出");System.out.println(0);return;}}System.out.println(map.get(tmp[1]) * map.get(tmp[2]));//        System.out.println(sum);}public static int find(int i){
//        while (arr[i] != i){
//            arr[i] = find(arr[i]);
//            if(arr[i] == find(arr[i]))return arr[i];
//        }if(arr[i] != i)arr[i] = find(arr[i]);return arr[i];}}

通过率100%

做题的时候想不起来并查集的模板,自己在那研究了好久才发现写的代码有问题

Q4 小红的数组分割

小红拿到了一个数组,她准备将数组分割成k段,使得每段内部做按位异或后,再全部求和。小红希望最终这个和尽可能大,你能帮帮她吗?

输入描述

输出描述

输出一个正整数,表示最终的最大和。

示例 1

输入

6 2
1 1 1 2 3 4

输出

10

说明

示例 2

输入

5 3
1 0 1 1 0

输出

3

示例 3

输入

3 3
1 1 2

输出

4

我的代码

一眼看出dp,这是笔试结束后写的 不知道通过率多少 有问题请评论提出

package oj4;import java.util.Scanner;/*** @Description* @Author chenyi0008* @Date 2024/3/31*/
public class Main {static int[][] dp;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int k = sc.nextInt();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i] = sc.nextInt();}dp = new int[n][n];for (int i = 0; i < n; i++) {dp[i][i] = arr[i];}for (int i = 0; i < n - 1; i++) {dp[i][i + 1] = dp[i][i] ^ dp[i + 1][i + 1];}for (int p = 1; p < n; p++) {for (int i = 0; i < n - p; i++) {dp[i][i + p] = dp[i][i] ^ dp[i + p][i + p];}}// k为分割段数量 start表示从哪开始分割int res = dfs(k, 0, n - 1);System.out.println(res);}public static int dfs(int n ,int start, int end){if(n == 2){int max = 0;for (int idx = start; idx < end; idx++){int sum = dp[start][idx] + dp[idx + 1][end];max = sum > max ? sum : max;}return max;}int max = 0;for(int idx = start; idx < end; idx ++){int sum = dfs(n - 1, start, idx) + dfs(n - 1, idx + 1, end);max = sum > max ? sum : max;}return max;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/784003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2、Cocos Creator 下载安装

Cocos Creator 从 v2.3.2 开始接入了全新的 Dashboard 系统&#xff0c;能够同时对多版本引擎和项目进行统一升级和管理&#xff01;Cocos Dashboard 将做为 Creator 各引擎统一的下载器和启动入口&#xff0c;方便升级和管理多个版本的 Creator。还集成了统一的项目管理及创建…

【MySQL】内外连接——内连接、外连接、左外连接、右外连接、内外连接的区别、左外连接和右外连接的区别

文章目录 MySQLMySQL表的内连接和外连接1. 内连接2. 外连接2.1 左外连接2.2 右外连接 3. 内外连接的区别4. 左外连接和右外连接的区别 MySQL MySQL表的内连接和外连接 MySQL 中的内连接&#xff08;INNER JOIN&#xff09;和外连接&#xff08;包括左外连接 LEFT JOIN 和右外连…

Java研学-SpringBoot(五)

七 统一异常处理 1 框架自带方式 Spring Boot 默认会把所有错误都交给 BasicErrorController 类完成处理&#xff0c;错误的视图导向到 classpath:/static/error/ 和 classpath:/templates/error/路径上&#xff0c;HTTP 状态码就是默认视图的名称。如&#xff1a; // 出现 4…

JS中常用的几种事件

在js中分为多种事件&#xff0c;比如点击事件&#xff0c;焦点事件&#xff0c;加载事件&#xff0c;鼠标事件等等... ... 点击事件 onclick点击事件&#xff0c;ondblclick双击事件 焦点事件 onblur元素失去焦点&#xff0c;onfocus元素获取焦点 加载事件 onload一个页面…

windows本地访问局域网tensorboard

https://blog.csdn.net/m0_51268651/article/details/126524028 这个文章中说使用xshell配置ssh后可在windows访问 有一说一不太能理解为什么谷歌会做的那么麻烦 果然有更好的方案&#xff0c;如下&#xff1a; tensorboard --logdir/path/to/event --host 0.0.0.0 --port 6…

600条最强Linux命令总结

1. 基本命令 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息 arch 显示机器的处理器架构 uname -m 显示…

Linux 如何一键kill杀死某个被占用的端口

文章目录 一、例子&#xff1a;关闭8082端口二、查找被占用端口的PID三、 kill 掉这个进程总结 一、例子&#xff1a;关闭8082端口 [rootVM_0_59_centos root]# netstat -tln | grep 8082 tcp6 3 0 :::8082 :::* LISTEN二、查找…

考研数学|听完一遍汤家凤基础,1800都没思路,怎么办?

看了我这篇回答&#xff0c;保证你可以顺利的做1800题&#xff01; 如果你听了汤家凤老师的课&#xff0c;但是做题没思路&#xff0c;请不要担心&#xff0c;也不要急着换老师&#xff0c;你很有可能是方法错了。 请你反思一下&#xff1a; 1、你是不是听完课立刻就去做题。…

配音虾助力视频文案提取,提升内容创作效率

配音虾作为一款智能语音技术产品&#xff0c;正逐渐在视频内容创作领域崭露头角。它以其独特的语音转文字功能&#xff0c;助力视频文案提取&#xff0c;极大地提升了内容创作的效率。对于广大内容创作者来说&#xff0c;这无疑是一项革命性的工具。目前上线的渠道只有微信小程…

[小程序开发] 设置request封装请求参数

一、在类中定义实例属性&#xff0c;用来设置默认请求参数 defaults{baseURL:,//请求基准地址url:,//接口的请求路径data:null,//请求参数method:GET,//默认的请求方法//请求头header:{Content-type:application/json//设置数据的交互格式},timeout:60000//默认的超时时长&…

wpf ContentPresenter

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;ContentPresenter是一个关键组件&#xff0c;它负责在控件或模板中渲染和展示内容。以下是关于ContentPresenter在WPF中作用、特性和使用场景的详细说明&#xff1a; 目的 内容占位符&#xff1a…

MTMT 质押活动启动 ,坐享巨大BTCFi 市场红利

BTC是第一大加密货币&#xff0c;目前加密货币总市值为 2.6 万亿美元&#xff0c;BTC市值占比约为 51%。事实上&#xff0c;相对于开发程度更高的以太坊生态&#xff0c;BTC生态目前仍处于发展的极早期&#xff0c;这意味着仍旧巨大的BTC价值亟需释放&#xff0c;这也意味着 BT…

设计方案-定时任务接口数据存储及更新策略

前言 在没有使用ETL工具且不考虑多数据源的情况下&#xff0c;我们需要从别的系统获取数据时&#xff0c;一般会选择分页接口查询并存储。本文算是我对类似场景代码的提炼&#xff0c;旨在总结相关套路&#xff0c;提升自我对数据库和模块的设计能力。 ETL(英文 Extract-Trans…

代码随想录 Day23 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 总结篇

669. 修剪二叉搜索树 class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if (root nullptr ) return nullptr;if (root->val < low) {TreeNode* right trimBST(root->right, low, high); // 寻找符合区间[low, high]的节点return ri…

li标签间的空白问题解决

li 与 li 之间有看不见的空白间隔是什么原因引起的&#xff1f; 浏览器会把inline内联元素间的空白字符&#xff08;空格、换行、Tab等&#xff09;渲染成一个空格。为了美观&#xff0c;通常是一个<li>放在一行&#xff0c;这导致<li>换行后产生换行字符&#xf…

详解CAS(Compare and swap)

一、什么是 CAS CAS: 全称Compare and swap&#xff0c;字⾯意思:”⽐较并交换“&#xff0c;⼀个 CAS 涉及到以下操作&#xff1a; 我们假设内存中的原数据V&#xff0c;旧的预期值A&#xff0c;需要修改的新值B。 比较 A 与 V 是否相等。&#xff08;⽐较&#xff09; 如果…

日志集中审计系列(3)--- LogAuditor接收UMA设备syslog日志

日志集中审计系列(3)--- LogAuditor接收UMA设备日志 前言拓扑图设备选型组网需求配置思路操作步骤结果验证前言 近期有读者留言:“因华为数通模拟器仅能支持USG6000V的防火墙,无法支持别的安全产品,导致很多网络安全的方案和产品功能无法模拟练习,是否有真机操作的实验或…

PyCharm中出现Microsoft Defender配置建议

原因 Windows安全中心的病毒和威胁防护会自动扫描电脑中的文件夹&#xff0c;我们的项目文件夹和IDE文件夹也会被扫描&#xff0c;而PyCharm认为这会降低IDE性能。 解决方法 直接点击提示框里的自动。 或是手动给扫描添加排除项&#xff0c;步骤如下&#xff1a; 1、先打开…

k8s1.28.8版本配置Alertmanager报警方式(邮件,企业微信)

文章目录 总结部署流程 Alertmanager 三大核心1. 分组告警2. 告警抑制3. 告警静默 报警过滤静默通知方案一&#xff1a;方案二&#xff1a; 抑制报警规则案例一 参考文档 自定义路由告警&#xff0c;分来自不同路由的告警&#xff0c;艾特不同的人员进行区分修改 alertmanager …

预训练大模型最佳Llama开源社区中文版Llama2

Llama中文社区率先完成了国内首个真正意义上的中文版Llama2-13B大模型&#xff0c;从模型底层实现了Llama2中文能力的大幅优化和提升。毋庸置疑&#xff0c;中文版Llama2一经发布将开启国内大模型新时代。 作为AI领域最强大的开源大模型&#xff0c;Llama2基于2万亿token数据预…