25秋招面试算法题 (Go版本)
文章目录
- 科大讯飞 0713
- 找01
- 不能出现太多
- 其他
科大讯飞 0713
找01
牛牛拥有一个长度为 n 的01 串,现在他想知道,对于每个字符,在它前面的最近的不同字符的下标是多少?
输入描述
本题为多组测试数据,第一行输入一个正整数 T(1<=t<=100),代表测试数据组数。对于每组测试数据,第一行输入一个正整数 n(1<=n<=1000),代表初始 01串的长度。第二行输入一个长度为 n的01 串,代表初始字符串。
输出描述
对于每组测试数据,一行输出 n 个整数 a1,a2,…,an,其中 ai 代表初始字符串中第 i 个位置的字符前面,最近的不同字符的下标是 ai,特殊的,如果前面不存在不同字符,则输出 -1 表示不存在。
示例 1
输入
1
4
1101
输出
-1 -1 2 3
遍历字符串,遇到01串变化的位置就更新索引,并填充到结果中
package kedaxunfeiimport ("bufio""fmt""os"
)func Find01Main() {Reader := bufio.NewReader(os.Stdin)Writer := bufio.NewWriter(os.Stdout)defer Writer.Flush()var n intfmt.Fscanf(Reader, "%d\n", &n)for i := 0; i < n; i++ {var strSize intvar str stringfmt.Fscanf(Reader, "%d\n", &strSize)fmt.Fscanf(Reader, "%s\n", &str)var result []intvar res = -1for index, _ := range str {if index == 0 {result = append(result, res)continue}if str[index-1] != str[index] {res = index}result = append(result, res)}fmt.Println(result)}}
不能出现太多
给定n个数字A1,A2,…An,请求出这些数字中出现次数小于等于k的最小的数。
输入描述
第一行正整数n,k,接下来一行n个正整数,第i个表示Ai 1<=k<=n<=105,1<=Ai<=109
输出描述
一行一个整数,表示答案。如果不存在出现次数少于等于k次的数字,输出-1
示例 1
输入
5 2
1 1 1 2 3
输出
2
用map记录每个数字出现的次数,最后遍历map选值最小的
package kedaxunfeiimport ("bufio""fmt""os"
)func NotExistTooMuch() {Reader := bufio.NewReader(os.Stdin)Writer := bufio.NewWriter(os.Stdout)var n, k intdefer Writer.Flush()fmt.Fscanf(Reader, "%d %d\n", &n, &k)nums := make([]int, n)maps := make(map[int]int)for i := 0; i < n; i++ {fmt.Fscanf(Reader, "%d", &nums[i])if _, ok := maps[nums[i]]; ok {maps[nums[i]]++} else {maps[nums[i]] = 1}}var res intvar maxRes = 100000for key, value := range maps {if value <= k {if key < maxRes {maxRes = keyres = key}}}fmt.Fprintf(Writer, "%d", res)}
其他
LCA
最近公共祖先(LCA, Lowest Common Ancestor)是树算法中的经典问题之一。给定一个二叉树和树中的两个节点,LCA 是指这两个节点的最深的公共祖先节点。
package mainimport "fmt"// TreeNode 定义二叉树的节点结构
type TreeNode struct {Val intLeft *TreeNodeRight *TreeNode
}// lowestCommonAncestor 寻找最近公共祖先
func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {if root == nil || root == p || root == q {return root}left := lowestCommonAncestor(root.Left, p, q)right := lowestCommonAncestor(root.Right, p, q)if left != nil && right != nil {return root}if left != nil {return left}return right
}// 辅助函数:构建二叉树
func buildTree() *TreeNode {root := &TreeNode{Val: 3}root.Left = &TreeNode{Val: 5}root.Right = &TreeNode{Val: 1}root.Left.Left = &TreeNode{Val: 6}root.Left.Right = &TreeNode{Val: 2}root.Right.Left = &TreeNode{Val: 0}root.Right.Right = &TreeNode{Val: 8}root.Left.Right.Left = &TreeNode{Val: 7}root.Left.Right.Right = &TreeNode{Val: 4}return root
}func main() {root := buildTree()p := root.Left // 节点5q := root.Left.Right // 节点2ancestor := lowestCommonAncestor(root, p, q)fmt.Printf("最近公共祖先是: %d\n", ancestor.Val)
}相关文章:
25秋招面试算法题 (Go版本)
文章目录 科大讯飞 0713找01不能出现太多其他 科大讯飞 0713 找01 牛牛拥有一个长度为 n 的01 串,现在他想知道,对于每个字符,在它前面的最近的不同字符的下标是多少? 输入描述 本题为多组测试数据,第一行输入一个…...
在Ubuntu 14.04上安装和保护phpMyAdmin的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 虽然许多用户需要像 MySQL 这样的数据库管理系统的功能,但他们可能不太习惯仅通过 MySQL 提示符与系统进行交互。 ph…...
突破与创新:Vue.js 创始人 尤雨溪 2024 年度技术前瞻
本文将深入探讨以下主题的 尤雨溪 见解:Vite 5对Vue的影响、宏、vapor模式、常见误解、新特性或功能、未来版本对Option API的支持、VitePress等。 . 2.尤大的问答环节 2.1. Vite 5如何提升Vue的性能? Vite在提高性能方面的工作通常是针对Vite本身的。然…...
LeetCode 441, 57, 79
目录 441. 排列硬币题目链接标签思路代码 57. 插入区间题目链接标签思路两个区间的情况对每个区间的处理最终的处理 代码 79. 单词搜索题目链接标签原理思路代码 优化思路代码 441. 排列硬币 题目链接 441. 排列硬币 标签 数学 二分查找 思路 由于本题所返回的 答案在区间…...
【排序 - 插入排序 和 希尔排序】
插入排序(Insertion Sort)是一种简单直观的排序算法,它的工作原理是逐步构建有序序列。在排序过程中,它将未排序的元素逐个插入到已排序的部分中,从而在每次插入时扩展已排序序列的长度。 原理介绍 插入排序的基本思…...
Java使用 MyBatis-Plus 的 OR
Java使用 MyBatis-Plus 的 OR 一、前言1. 简介2. OR 查询2.1 基础 OR 查询2.2 使用 Lambda 表达式简化 二、总结 一、前言 学习使用 MyBatis-Plus 的 OR 及高级语句是提升数据库操作效率和灵活性的关键步骤。MyBatis-Plus 是 MyBatis 的增强工具包,提供了许多便捷的…...
[Linux]CentOS软件的安装
一、Linux 软件包管理器 yum 1.Linux安装软件的方式 在linux中安装软件常用的有三种方式: 源代码安装(我们还需要进行编译运行后才可以,很麻烦) rpm安装(Linux的安装包,需要下载一些rpm包,但是…...
4000厂商默认账号密码、默认登录凭证汇总.pdf
获取方式: 链接:https://pan.baidu.com/s/1F8ho42HTQhebKURWWVW1BQ?pwdy2u5 提取码:y2u5...
RK3568笔记三十六:LED驱动开发(设备树)
若该文为原创文章,转载请注明原文出处。 记录使用设备树编写一个简单的 LED 灯驱动程序 一、编程思路 程序编写的主要内容为添加 LED 灯的设备树节点、在驱动程序中使用 of 函数获取设备节点中的 属性,编写测试应用程序。 • 首先向设备树添加 LED 设备…...
AC修炼计划(AtCoder Regular Contest 180) A~C
A - ABA and BAB A - ABA and BAB (atcoder.jp) 这道题我一开始想复杂了,一直在想怎么dp,没注意到其实是个很简单的规律题。 我们可以发现我们住需要统计一下类似ABABA这样不同字母相互交替的所有子段的长度,而每个字段的的情况有ÿ…...
云计算练习题
第一题:每周日晚上11点59分需要将/data目录打包压缩到/mnt目录下并以时间命名 #crontab -e 59 23 * * 7 /bin/tar czvf /mnt/date %F-data.tar.gz /data 59 23 * * 7 /bin/tar czvf /mnt/date %T.tar.gz /data 第二题:查找出系统中/application目录下所有…...
《战甲神兵》开发者报告:游戏崩溃问题80%发生在Intel可超频酷睿i9处理器上——酷睿i7 K系列CPU也表现出高崩溃率
在Intel持续面临第13代和第14代CPU崩溃问题的背景下,近日,《战甲神兵》(Warframe)的开发者们于7月9日披露了游戏崩溃的统计数据,并描述了诊断该问题的过程。根据开发团队的说法,一名未进行超频且使用全新PC的员工,即便…...
Postman下载及使用说明
Postman使用说明 Postman是什么? Postman是一款接口对接工具【接口测试工具】 接口(前端接口)是什么? 前端发送的请求普遍被称为接口 通常有网页的uri参数格式json/key-value请求方式post/get响应请求的格式json 接…...
什么是im即时通讯?WorkPlus im即时通讯私有化部署安全可控
IM即时通讯是Instant Messaging的缩写,指的是一种实时的、即时的电子信息交流方式,也被称为即时通讯。它通过互联网和移动通信网络,使用户能够及时交换文本消息、语音通话、视频通话、文件共享等信息。而WorkPlus im即时通讯私有化部署则提供…...
hnust 1794: 机器翻译
hnust 1794: 机器翻译 题目描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存…...
AI人工智能开源大模型生态体系分析
人工智能开源大模型生态体系研究 "人工智能开源大模型生态体系研究报告v1.0"揭示,AI(A)的飞速发展依赖于三大核心:数据、算法和算力。这一理念已得到业界广泛认同,三者兼备才能推动AI的壮大发展。随着AI大模型的扩大与普及…...
ArkTS学习笔记_封装复用之@Styles装饰器
ArkTS学习笔记_封装复用之Styles装饰器 背景: 在开发中,如果每个组件的样式都需要单独设置,就会出现大量代码在进行重复样式设置,虽然可以复制粘贴,但为了代码简洁性和后续方便维护,给出的思路是ÿ…...
根据vue学习react
react的函数式组件与vue2是很像的 一、基础类似点 1、组件下拥有一个根节点,vue2是template,react是幽灵标签<> 2、vue2是{{}}以及v-model,react的绑定是{} 3、vue2编译html是v-html,react是{},并且react的jsx中…...
Hi3861 OpenHarmony嵌入式应用入门--HTTPD
httpd 是 Apache HTTP Server 的守护进程名称,Apache HTTP Server 是一种广泛使用的开源网页服务器软件。 本项目是从LwIP中抽取的HTTP服务器代码; Hi3861 SDK中已经包含了一份预编译的lwip,但没有开启HTTP服务器功能(静态库无法…...
MICS2024|少样本学习、多模态技术以及大语言模型在医学图像处理领域的研究进展|24-07-14
小罗碎碎念 本期推文主题 今天的会议很多主题都集中在大模型、多模态这两个方面,很明显,这两个方向都是目前的研究热点。 所以,我这一期推文会先简单的分析一下秦文健(中科院)和史淼晶(同济大学)…...
3层深度清理技术:Display Driver Uninstaller显卡驱动彻底卸载解决方案
3层深度清理技术:Display Driver Uninstaller显卡驱动彻底卸载解决方案 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-driv…...
2026年阿里云OpenClaw/Hermes Agent配置Token Plan怎么安装看这
2026年阿里云OpenClaw/Hermes Agent配置Token Plan怎么安装看这。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...
CANN-ops-nn-昇腾NPU神经网络算子的积木盒子
你去超市买过那种混合装坚果吗?一袋里面核桃、腰果、巴旦木都有,打开直接吃,不用自己搭配。ops-nn 在昇腾CANN生态里就是这个角色——把神经网络最常用的算子打包好了,打开就能用。昇腾NPU跑大模型、跑视觉模型,底层都…...
软考中级嵌入式——第九章 数据结构与算法
1.数据结构与算法概念1.1数据结构数据结构概述:数据结构是计算机存储、组织数据的方式。简单来说,就是如何把现实中的数据(如数字、文字、图片)合理地整理好,放进计算机里,并定义好对这些数据可以做什么操作…...
pod创建
Pod 由一个或多个紧密耦合的容器组成,它们之间共享网络、存储等资源,Pod 是 Kubernetes 中最小的工作单元,Pod 中的容器会一起启动和停止。1.创建pod一个pod只有一个业务容器kubectl logs mypod 命令用于查看名为 mypod 的 Pod 中唯一容器的标…...
7z2john报错Compress::Raw::Lzma.pm缺失的原理与修复
1. 这不是你的错:当7z2john突然报错“Cant locate Compress::Raw::Lzma.pm”时,你其实只缺一个Perl模块刚打开终端准备提取7z压缩包里的密码哈希,7z2john archive.7z > hash.txt回车一敲,屏幕却猛地跳出一行红字:Ca…...
中控考勤机MDB数据库逆向与安全审计实战
1. 为什么是中控考勤机MDB?——一个被低估的工业级数据入口你可能在工厂门禁旁、写字楼前台、甚至学校行政楼里见过那个灰黑色方盒子,屏幕不大,带个红外感应区,刷一下工卡,“滴”一声就完成打卡。它叫中控考勤机&#…...
windows VS工具判断动态库是32位还是64位
dumpbin /headers yourfile.dll | findstr "machine"...
在Nodejs后端服务中集成Taotoken提供AI能力的配置指南
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Nodejs后端服务中集成Taotoken提供AI能力的配置指南 将大模型能力集成到后端服务是现代应用开发的常见需求。对于使用Node.js的开…...
2025年终极指南:PlayIntegrityFix让你的Root设备完美通过Google认证
2025年终极指南:PlayIntegrityFix让你的Root设备完美通过Google认证 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix 还在为Root后的Android设备无法正…...
