当前位置: 首页 > news >正文

23年阿里淘天笔试题 | 卡码网模拟

第一题

  1. 字典序最小的 01 字符串

解题思路:

模拟,统计遇到的连续的1的个数记为num,直到遇到0,如果k>=num,直接将第一个1置为0,将遇到的0置为1,否则将第一个1偏置num-k个位置置为0,遇到的0置为1。

原理是遇到的1,基本都要往后移。有多少个k就可以往后移多少个1,而字典序最小又要求我们优先移动前面的

#include <iostream>
#include <string>
using namespace std;int main() {int n, k;cin >> n >> k;string s;cin >> s;int num = 0;int start = 0;for (int i = 0; i < n; i++) {if (s[i] == '0') continue;num = 0;start = i;num++;while (i + 1 < n && s[i+1] != '0') {num++; i++;}if (i + 1 >= n) break;if (k >= num) {s[start] = '0'; s[start + num] = '1';k -= num;i = start;}else {s[start + num - k] = '0'; s[start + num] = '1';k = 0; break;}}cout << s << endl;
}
import java.util.*;class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int k = sc.nextInt();sc.nextLine();String str = sc.nextLine();char[] ch = str.toCharArray();int num = 0;int start = 0;for (int i = 0; i < n; i++) {if (ch[i] == '0') continue;num = 0;start = i;num++;while (i + 1 < n && ch[i+1] != '0') {num++; i++;}if (i + 1 >= n) break;if (k >= num) {ch[start] = '0'; ch[start + num] = '1';k -= num;i = start;}else {ch[start + num - k] = '0'; ch[start + num] = '1';k = 0; break;}}StringBuilder sb = new StringBuilder();for (int i = 0; i < n; i++) sb = sb.append(ch[i]);System.out.println(sb.toString());}
}

第二题

  1. 数组子序列的排列

解题思路:

先统计从1开始连续的数的个数和每个数在数组中出现的个数,只统计100000以下的数出现的个数,最后计算规律为n1 + n1n2 + n1n2n3 + … + n1n2…*nm

#include<iostream>
#include <vector>
using namespace std;const long long mod = 1000000000 + 7;int main() {int n;cin >> n;vector<long long> nums(n, 0);vector<long long> num(n, 0);for (int i = 0; i < n; i++) {cin >> nums[i];if (nums[i] < 100000)num[nums[i]-1]++;}int b = 0;for (int i = 0; i < n; i++) {if (num[i] == 0) {b = i; break;}}long long sum = 0;for (int i = 0; i < b; i++) {long long sum_in = 1;for (int j = 0; j <= i; j++) {sum_in *= num[j];sum_in %= mod;}sum += sum_in;sum %= mod;}sum %= mod;cout << sum << endl;
}
import java.util.*;class Main {public static void main(String[] args) {long mod = 1000000007L;Scanner sc = new Scanner(System.in);int n = sc.nextInt();sc.nextLine();long[] nums = new long[n];long[] num = new long[n];for (int i = 0; i < n; i++) {nums[i] = sc.nextLong();if (nums[i] < 100000)num[(int)nums[i]-1]++;}int b = 0;for (int i = 0; i < n; i++) {if (num[i] == 0) {b = i; break;}}long sum = 0;for (int i = 0; i < b; i++) {long sum_in = 1;for (int j = 0; j <= i; j++) {sum_in *= num[j];sum_in %= mod;}sum += sum_in;sum %= mod;}sum %= mod;System.out.println(sum);}
}

第三题

  1. 传送树

解题思路

用dfs扫描一遍邻接表即可

#include <iostream>
#include <list>
#include <vector>
#include <climits>
using namespace std;int dfs(vector<int>& ans, vector<list<int>>& tree, int index) {if (tree[index].size() == 0) {ans[index] = 1;return index;}int ret = INT_MAX;for (int t : tree[index]) ret = min(dfs(ans, tree, t), ret);ans[index] = ans[ret] + 1;return min(index, ret);
}int main() {int n; cin >> n;vector<list<int>> tree(n, list<int>(0));vector<int> ans(n, 0);int u, v;for (int i = 0; i < n - 1; i++) {cin >> u >> v;tree[u-1].push_back(v-1);}dfs(ans, tree, 0);for (int index = 0; index < n; index++) {cout << ans[index] << ' ';}cout << endl;
}
import java.util.*;class Main {public static int dfs(int[] ans, List<Integer>[] tree, int index) {if (tree[index].size() == 0) {ans[index] = 1;return index;}int ret = Integer.MAX_VALUE;for (int t : tree[index]) ret = Math.min(dfs(ans, tree, t), ret);ans[index] = ans[ret] + 1;return Math.min(index, ret);}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();List<Integer>[] tree = new List[n];for (int i = 0; i < n; i++) tree[i] = new ArrayList<>();int[] ans = new int[n];int u, v;for (int i = 0; i < n - 1; i++) {u = sc.nextInt();v = sc.nextInt();tree[u-1].add(v-1);}dfs(ans, tree, 0);for (int index = 0; index < n; index++) {System.out.print(ans[index] + " ");}System.out.println();}
}

相关文章:

23年阿里淘天笔试题 | 卡码网模拟

第一题 字典序最小的 01 字符串 解题思路&#xff1a; 模拟&#xff0c;统计遇到的连续的1的个数记为num&#xff0c;直到遇到0&#xff0c;如果k>num&#xff0c;直接将第一个1置为0&#xff0c;将遇到的0置为1&#xff0c;否则将第一个1偏置num-k个位置置为0&#xff0…...

【SpringBoot】单元测试之测试Service方法

测试Service方法 SpringBootTest public class UserServiceTest{ Autowired private UserService userService; Test public void findOne () throws Exception{ Assert.assertEquals("1002",userService.findOne()); } } 测试Controller接口方法 Runwith(S…...

剪辑师和小白都能用的AI解说神器,一键把短剧变解说视频-手把手教程-2024

为什么短剧、综艺、电影和电视剧需要以解说形式在抖音、快手和TikTok推广&#xff1f; 此类专业影视内容由于时间过长、平台用户的习惯、算法去重需求和版权问题&#xff0c;专业的影视综节目通常需要用解说类型的视频来不断重复的宣发剧集。具体的原因如下&#xff1a; 1. 视…...

我去,怎么http全变https了

项目场景&#xff1a; 在公司做的一个某地可视化项目。 部署采用的是前后端分离部署&#xff0c;图片等静态资源请求一台minio服务器。 项目平台用的是http 图片资源的服务器用的是https 问题描述 在以https请求图片资源时&#xff0c;图片请求成功报200。 【现象1】: 继图…...

IDEA的详细设置

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试&#xff08;Debug&#xff09; 第七章 …...

为什么Spring选择使用容器来管理对象,而不是直接使用new

为什么Spring选择使用容器来管理对象&#xff0c;而不是直接使用new 在Java应用程序开发中&#xff0c;对象的创建和管理是一项基础且关键的任务。传统上&#xff0c;开发者习惯于使用new关键字直接在代码中实例化对象。然而&#xff0c;随着应用程序规模的扩大和复杂度的增加…...

腾讯云发送短信验证码

1、在腾讯云平台中 开通短信服务 2、发送短信 2.1引用jar包 <dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java-sms</artifactId><version>3.1.1043</version> </dependency>2.2 发送短…...

嵌入式人工智能(13-基于树莓派4B的指纹识别-AS608)

1、指纹识别模块 指纹识别是一种生物识别技术&#xff0c;通过分析人体指纹的纹理特征来进行身份验证。每个人的指纹纹路都是独一无二的&#xff0c;通过将指纹与事先存储的指纹数据库进行比对&#xff0c;可以确定是否为同一人。指纹识别在安全领域得到广泛应用&#xff0c;例…...

【Vue】`v-on` 指令详解:事件绑定与处理的全面指南

文章目录 一、v-on 指令概述缩写语法 二、v-on 的基本用法1. 绑定方法2. 内联处理器 三、v-on 指令的高级用法1. 事件修饰符.stop.prevent.capture.self.once 2. 按键修饰符.enter自定义按键修饰符 3. 系统修饰符 四、v-on 指令的实际应用1. 表单处理模板部分 (<template>…...

【Spark On Hive】—— 基于电商数据分析的项目实战

文章目录 Spark On Hive 详解一、项目配置1. 创建工程2. 配置文件3. 工程目录 二、代码实现2.1 Class SparkFactory2.2 Object SparkFactory Spark On Hive 详解 本文基于Spark重构基于Hive的电商数据分析的项目需求&#xff0c;在重构的同时对Spark On Hive的全流程进行详细的…...

哪种SSL证书可以快速签发保护http安全访问?

用户访问网站&#xff0c;经常会遇到访问http网页时&#xff0c;提示网站不安全或者不是私密连接的提示&#xff0c;因为http是使用明文传输&#xff0c;数据传输中可能被篡改&#xff0c;数据不被保护&#xff0c;通常需要SSL证书来给数据加密。 SSL证书的签发速度&#xff0…...

深入探究理解大型语言模型参数和内存需求

概述 大型语言模型 取得了显著进步。GPT-4、谷歌的 Gemini 和 Claude 3 等模型在功能和应用方面树立了新标准。这些模型不仅增强了文本生成和翻译&#xff0c;还在多模态处理方面开辟了新天地&#xff0c;将文本、图像、音频和视频输入结合起来&#xff0c;提供更全面的 AI 解…...

maven 私服搭建(tar+docker)

maven私服搭建 一、linux安装nexus1、工具下载 二、 docker 搭建nexus1、镜像下载创建目录2、运行nexus3、访问确认&#xff0c;修改默认密码&#xff0c;禁用匿名用户登录4、创建仓库5、创建hostd仓库6、创建Blob Stores7、创建docker私服1、创建proxy仓库2、创建hotsed本地仓…...

银行业务知识全篇(财务知识、金融业务知识)

第一部分 零售业务 1.1 储蓄业务 4 1.1.1 普通活期储蓄(本外币) 4 1.1.2 定期储蓄(本外币) 5 1.1.3 活期一本通 9 1.1.4 定期一本通 10 1.1.5 电话银行 11 1.1.6 个人支票 11 1.1.7 通信存款 13 1.1.8 其他业务规…...

解决ElasticJob项目重启ZooKeeper注册冲突以及zkCli删除目录

解决ElasticJob项目重启ZooKeeper注册冲突以及zkCli删除目录 背景 在现代化的分布式调度系统中&#xff0c;ElasticJob 是一个非常流行的选择。它利用 ZooKeeper 作为注册中心来管理任务分片。然而&#xff0c;有时在项目重启时&#xff0c;会遇到 ZooKeeper 注册冲突的问题&…...

【EI检索】第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

一、会议信息 大会官网&#xff1a;www.mvipit.org 官方邮箱&#xff1a;mvipit163.com 会议出版&#xff1a;IEEE CPS 出版 会议检索&#xff1a;EI & Scopus 检索 会议地点&#xff1a;河北张家口 会议时间&#xff1a;2024 年 9 月 13 日-9 月 15 日 二、征稿主题…...

vscode通过ssh链接远程服务器上的docker

目录 1 编译docker image1.1 编译镜像1.2 启动镜像 2 在docker container中启动ssh服务2.1 确认是否安装ssh server2.2 修改配置文件2.3 启动ssh服务 3 生成ssh key4 添加ssh公钥到docker container中5 vscode安装插件Remote - SSH6 在vscode中配置 1 编译docker image 一般来…...

使用NIFI连接瀚高数据库_并从RestFul的HTTP接口中获取数据局_同步到瀚高数据库中---大数据之Nifi工作笔记0067

首先来看一下如何,使用NIFI 去连接瀚高数据库. 其实,只要配置好了链接的,连接字符串,和驱动,任何支持JDBC的数据库都可以连接的. 首先我们用一个ListDatabaseTables处理器,来连接瀚高DB 主要是看这里,连接地址,以及驱动,还有驱动的位置 这个是数据连接的配置 jdbc:highgo://…...

IDEA的工程与模块管理

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试&#xff08;Debug&#xff09; 第七章 …...

[M前缀和] lc3096. 得到更多分数的最少关卡数目(前缀和+思维)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接&#xff1a;3096. 得到更多分数的最少关卡数目 2. 题目解析 比较有意思的题目&#xff0c;仔细读题后发现解题没啥难度&#xff0c;但是如何写好、写的更简洁需要注意下&#xff1a; 思路&#xff1a; 数据量 1e5&#…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...