牛客 接头密匙

Problem: 牛客 接头密匙

文章目录

  • 思路
  • 解题方法
  • 复杂度
  • Code

思路

这个问题可以通过使用前缀树(Trie)来解决。前缀树是一种用于存储字符串的数据结构,其中每个节点代表一个字符串的前缀。在这个问题中,我们可以使用前缀树来存储数组b中的所有字符串,并在数组a中查找是否存在相同的字符串。

解题方法

首先,我们需要清空前缀树,并将所有的字符串插入到前缀树中。然后,我们遍历数组a,对于每一个字符串,我们都在前缀树中查找是否存在相同的字符串。如果存在,我们就将结果数组的对应位置加一。

复杂度

时间复杂度:

O ( n ) O(n) O(n),其中n是数组a和b的总长度。因为我们需要遍历所有的字符串,并在前缀树中插入和查找。

空间复杂度:

O ( n ) O(n) O(n),其中n是数组a和b的总长度。因为我们需要使用一个前缀树来存储所有的字符串。

Code

import java.util.*;public class Solution {/*** 思路: 建立b的前缀树 a中形成的字符 ——》在a中sreach*** @param b int整型二维数组* @param a int整型二维数组* @return int整型一维数组*/static int MAXN = (int)(1e6 + 10);static int[][] tree = new int[MAXN][12];static int[] pass = new int[MAXN];static int cnt = 1;public static int[] countConsistentKeys (int[][] b, int[][] a) {clear();// write code hereint[] ans = new int[b.length];StringBuffer sb = new StringBuffer();for (int i = 0; i < a.length; i++) {sb.setLength(0);for (int j = 1; j < a[i].length; j++) {sb.append(String.valueOf(a[i][j] - a[i][j - 1])).append("#");}insert(sb.toString());}for (int i = 0; i < b.length; i++) {sb.setLength(0);for (int j = 1; j < b[i].length; j++) {sb.append(String.valueOf(b[i][j] - b[i][j - 1])).append("#");}ans[i] = count(sb.toString());}return ans;}static void insert(String word) {int cur = 1;pass[cur]++;for (int i = 0, path; i < word.length(); i++) {path = deal(word.charAt(i));if (tree[cur][path] == 0) {tree[cur][path] = ++cnt;}cur = tree[cur][path];pass[cur]++;}}static int count(String pre) {int cur = 1;for (int i = 0, path; i < pre.length(); i++) {path = deal(pre.charAt(i));if (tree[cur][path] == 0) {return 0;}cur = tree[cur][path];}return pass[cur];}static int deal(char ch) {if (ch == '#') {return 10;} else if (ch == '-') {return 11;}return ch - '0';}static void clear() {for (int i = 0; i <= cnt; i++) {Arrays.fill(tree[i], 0);pass[i] = 0;}}
}

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

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

相关文章

Flex布局(秒懂弹性盒子的使用)

目录 一、Flex介绍 1.概念 主要概念&#xff1a; 2.Flex容器属性 3.Flex项目属性 4.优势 二、Flex使用 1.弹性盒子内容 2.flex-direction 语法 3.justify-content 属性 4.align-items 属性 语法 5.flex-wrap 属性 语法&#xff1a; 6.align-content 属性 语法&am…

在 Google Colab 中安装torch-xla 报错

关于深度学习的一些学习框架,我使用过pytorch,caffe,caffe2,openchatkit,oneflow等,最近我将长达几十万字的报错手册重新进行了整理,制作出一个新的专栏,主要记录这几种常见的开发框架在安装和使用过程中常见的报错,以及我是如何解决掉的,以此来帮助更多的深度学习开…

jetson系列开发板使用虚拟机烧录系统时,遇见无法识别开发板的情况

在双系统中的ubuntu系统烧录没问题&#xff0c;但是电脑Ubuntu系统由于版本低&#xff0c;所以没有网络&#xff0c;烧录起来还的连网线&#xff0c;所以问了开发板的工程师&#xff0c;所幸&#xff0c;解决了问题&#xff0c;很感谢工程师的指导&#xff0c;特此记录一下&…

【研发日记】CANoe自动化测试的配置方式(三)——SystemVariables数组方式

文章目录 前言 一、例程功能 二、仿真ECU 三、SystemVariables数组&#xff1a; 四、测试模块 五、测试运行效果 六、分析和应用 总结 前言 近期在做的一个自动化测试项目&#xff0c;尝试了一种以前没用过的测试配置方式&#xff0c;感觉效果还不错。然后又回顾了一下以…

顺序表C语言实现

这是SL.h头文件 #pragma once #include<stdio.h> #include<stdlib.h> #include<assert.h>typedef int SeqListType;typedef struct SeqList {SeqListType* arr;int next;int capacity; }SL; //调试使用void SLPrint(SL* ps);//初始化void SLInit(SL* ps);//…

JVM主要知识点详解

目录 1. 性能监控和调优 1.1 调优相关参数 1.2 内存泄漏排查 1.3 cpu飙⾼ 2. 内存与垃圾回收 2.1JVM的组成&#xff08;面试题&#xff09; 2.2 Java虚拟机栈的组成 2.3 本地方法栈 2.4 堆 2.5 方法区&#xff08;抽象概念&#xff09; 2.5.1 方法区和永久代以及元空…

阿里云服务器8核16G配置最新租用收费价格表与优惠价格

8核16G配置是大部分企业级用户购买阿里云服务器的首选配置&#xff0c;2024年经过调价之后&#xff0c;8核16G配置的阿里云服务器按量收费标准最低为0.9元/小时&#xff0c;按月租用平均优惠月价最低收费标准为432.0元/1个月&#xff0c;按年购买最低活动价格为1803.17元/1年&a…

Avalonia中嵌入网页程序(CefNet)

Avalonia中嵌入网页程序cefNet 1. 引入CefNetNuget包2. 下载 cef 基础环境3. 将cef基础环境放入程序运行目录下4. 代码中初始化cef5. 添加Webview控件6. 在窗口关闭的时候释放Cef7. 项目结构图CefNet 开源的作者已经停止维护并删除了原始的代码库:GetHub:CefNet,Nuget上还有发…

linux命令(一)

linux命令&#xff08;一&#xff09; 一、单选题 1、改变文件所有者的命令为()。 A、chmod B、touch C、chown D、cat 2、假设当前有两个用户组group1、group2,有三名用户usr1、usr2、usr3,其中usr1、usr2属于用户组group1,usr3属于用户组group2。假设用户usr1使用“touch f…

# ABAP SQL 字符串处理-CONCATCAST

经常我都要在ABAP的sql语句中对字符串进行处理&#xff0c;现在就总结一下可以用到的方法 文章目录 字符串处理拼接字段运行结果 填充字符串运行结果 截取字符串 SUBSTRING运行结果 CAST转换类型程序运行结果 CAST 转换成 DATS类型&#xff08;日期&#xff09; 字符串处理 在…

中国电子学会(CEIT)2021年12月真题C语言软件编程等级考试三级(含详细解析答案)

中国电子学会(CEIT)考评中心历届真题(含解析答案) C语言软件编程等级考试三级 2021年12月 编程题五道 总分:100分一、我家的门牌号(20分) 我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。 若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的…

List接口介绍

List接口特点 List是有序、可重复的容器。 有序&#xff1a;有序&#xff08;元素存入集合的顺序和取出的顺序一致&#xff09;。List中每个元素都有索引标记。可以根据元素的索引标记&#xff08;在List中的位置&#xff09;访问元素&#xff0c;从而精确控制这些元素。 可…

【c语言】结构体的访问

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…

webIDE jupyternotebook中添加虚拟环境

困扰了我好久啊啊啊终于可以了&#xff0c;好了步入正题&#xff1a; 首先参考这个博客 指路 但是有一些错误&#xff0c;就是我添加我的虚拟环境时显示权限不够 我就在这一步前面加上了sudo python -m ipykernel install --nameyour_env_name(虚拟环境名)但是又显示 sudo: p…

性能分析汇总

要进行性能分析&#xff0c;需要在性能脚本运行时&#xff0c;对服务器进行性能监控 常用的性能监控命令&#xff0c;当然也可以通过性能平台来进行查看。 常用的性能监控命令 详细查看这里 top: 进程列表中&#xff0c;是根据cpu的使用率从高到低排序 top命令的语法如下&a…

DIY可视化实现仿抖音短视频代码生成器

DIY可视化实现仿抖音短视频代码生成器&#xff0c;仿抖音短视频兼容uniapp、微信小程序 丝滑切换视频效果&#xff0c;无限数据加载不卡顿&#xff0c;高性能滑动不卡顿超流畅&#xff0c;观看视频丝滑切换&#xff0c;页面内容自定义&#xff0c;无限数据加载不卡顿。 在线设…

简单3步,OpenHarmony上跑起ArkUI分布式小游戏

标准系统新增支持了方舟开发框架&#xff08;ArkUI&#xff09;、分布式组网和 FA 跨设备迁移能力等新特性&#xff0c;因此我们结合了这三种特性使用 ets 开发了一款如下动图所示传炸弹应用。 打开应用在通过邀请用户进行设备认证后&#xff0c;用户须根据提示完成相应操作&am…

入局新能源车赛道 深象智能智慧门店方案落地极氪全国门店

继商超、商场、校园场景后&#xff0c;银泰商业集团旗下科技公司深象智能科技入局新能源汽车赛道。4月16日&#xff0c;深象智能科技与极氪智能科技达成战略合作。该公司研发的软硬件一体化“智慧门店”解决方案&#xff0c;将应用于极氪全国门店。 &#xff08;图&#xff1a;…

如何将Oracle 中的部分不兼容对象迁移到 OceanBase

本文总结分析了 Oracle 迁移至 OceanBase 时&#xff0c;在出现三种不兼容对象的情况时的处理策略以及迁移前的预检方式&#xff0c;通过提前发现并处理这些问题&#xff0c;可以有效规避迁移过程中的报错风险。 作者&#xff1a;余振兴&#xff0c;爱可生 DBA 团队成员&#x…

WEB前端-笔记

目录 一、字体 二、背景图片 三、显示方式 四、类型转换 五、相对定位 六、绝对定位 七、固定定位 八、Index 九、粘性定位 十、内边距 十一、外边距 十二、边框 十三、盒子尺寸计算问题 十四、清楚默认样式 十五、内容溢出 十六、外边距的尺寸与坍塌 十七、行…