算法题
文章平均质量分 54
收集算法题及提供解题方法
Winyar Wen
这个作者很懒,什么都没留下…
展开
-
一个由大小写字母组成的字符串
输入一个由n个大小写字母组成的字符串,按照Ascii码值从小到大的排序规则,查找字符串中第k个最小ascii码值的字母(k>=1),输出该字母所在字符串的位置索引(字符串的第一个字符位置索引为0)。k如果大于字符串长度,则输出最大ascii值的字母所在字符串的位置索引,如果有重复的字母,则输出字母的最小位置索引。第一行输入一个由大小写字母组成的字符串第二行输入k,k必须大于0,k可以大于输入字符串的长度输出字符串中第k个最小ascii码值的字母所在字符串的位置索引。k如果大于字符串长度,则输出最大asc原创 2022-06-20 22:47:28 · 431 阅读 · 1 评论 -
JAVA求解【字符串加密】
给你一串未加密的字符串str,通过对字符串的每一个字母进行改变来实现加密,加密方式是在每一个字母str[i]偏移特定数组元素a[i]的量,数组a前三位已经赋值:a[0]=1,a[1]=2,a[2]=4。当i>=3时,数组元素a[i]=a[i-1]+a[i-2]+a[i-3],例如:原文 abcde 加密后 bdgkr,其中偏移量分别是1,2,4,7,13。第一行为一个整数n(1...原创 2022-06-20 22:19:58 · 654 阅读 · 0 评论 -
JAVA求解【字符串分割】
给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;反之,如果它含有的大写字母比小写字母多,则将这个子串的所有小写字母转换为大写字母;大小写字母的数量相等时,不做转换。输入为两行,第一行为参数K,第二行为字符串S。输出转换后的字符串。312abc-abCABc-4aB@12abc-abc-ABC-4aB-@子串为12ab原创 2022-06-20 21:02:22 · 577 阅读 · 0 评论 -
JAVA解题【求取最长的完全连续交替方波信号】
输入一串方波信号,求取最长的完全连续交替方波信号,并将其输出,如果有相同长度的交替方波信号,输出任一即可,方波信号高位用1标识,低位用0标识,如图:1) 一个完整的信号一定以0开始然后以0结尾,即010是一个完整信号,但101,1010,0101不是2)输入的一串方波信号是由一个或多个完整信号组成3) 两个相邻信号之间可能有0个或多个低位,如0110010,0110000104) 同一个信号中可以有连续的高位,如01110101011110001010,前14位是一个具有连续高位的信号5) 完全连续原创 2022-06-19 20:44:42 · 1234 阅读 · 0 评论 -
JAVA求解【乱序整数序列两数之和绝对值最小】
给定一个随机的整数(可能存在正整数和负整数)数组 nums ,请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值,并返回这个两个数(按从小到大返回)以及绝对值。每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。一个通过空格分割的有序整数序列字符串,最多1000个整数,且整数数值范围是 [-65535, 65535]。输出描述:两数之和绝对值最小值-1 -3 7 5 11 15-3 5 2因为 |nums[0] + nums[2]| = |-3 + 5| =原创 2022-06-19 19:49:51 · 793 阅读 · 0 评论 -
JAVA解题【We Are A Team】
总共有n个人在机房,每个人有一个标号(1原创 2022-06-19 19:24:15 · 874 阅读 · 1 评论 -
JAVA求满足条件的最长子串的长度(字母数字组合,有一个字母,不能全是字母或数字)
给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求:1、 只包含1个字母(a~z, A~Z),其余必须是数字;2、 字母可以在子串中的任意位置;如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。输入描述:字符串(只包含字母和数字)输出描述:子串的长度输入abC124ACb输出4说明满足条件的最长子串是C124或者124A,长度都是4输入a5输出2说明字符串自身就是满足条件的子串,长度为2输入aBB9输出原创 2022-06-19 17:50:29 · 1123 阅读 · 2 评论 -
JAVA实现判断字符串子序列(子序列不需要黏在一起匹配,可以删减字符顺序匹配)
给定字符串target和source,判断target是否为source的子序列。你可以认为target和source 中仅包含英文小写字母,字符串source可能会很长,长度~=500,000,而target是个短字符串,长度原创 2022-06-18 20:02:16 · 455 阅读 · 0 评论 -
java解题【整数编码】
实现一种整数编码方法,使得待编码的数字越小,编码后所占用的字节数越小。编码规则如下:1、编码时7位一组,每个字节的低7位用于存储待编码数字的补码。2、字节的最高位表示后续是否还有字节,置1表示后面还有更多的字节,置0表示当前字节为最后一个字节。3、采用小端序编码,低位和低字节放在低地址上。3、编码结果按16进制数的字符格式输出,小写字母需转换为大写字母。输入的为一个字符串表示的非负整数输出一个字符串,表示整数编码的16进制码流输入0输出00说明输出的16进制字符,不足两位的前面补0,如0原创 2022-06-18 16:41:19 · 684 阅读 · 1 评论 -
JAVA实现简单消消乐游戏
输入一个只包含英文字母的字符串,字符串中的两个字母如果相邻且相同,就可以消除。在字符串上反复执行消除的动作,直到无法继续消除为止,此时游戏结束。输出最终得到的字符串长度。输入aacbbdccca输出cdca输入aacbbcd输出d说明:aa、bb被消除后变成,ccd,接着cc又消除掉,最后变成d...原创 2022-06-18 11:41:13 · 3339 阅读 · 0 评论 -
GC回收机制及算法、GC收集器、GC的一些配置
概述说起垃圾收集(Garbage Collection, GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考GC需要完成的3件事情:1)哪些内存数据需要回收?2)什么时候回收?3)如何回收?经过半个多世纪的发展,目前内存的动态分配...原创 2019-07-21 09:07:16 · 507 阅读 · 0 评论 -
向量空间模型算法(Vector Space Model)
概念介绍向量空间模型(VSM:Vector Space Model)由Salton等人于20世纪70年代提出,并成功地应用于文本检索系统。VSM概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示为文档空间的向量,就可以通过计算向量之间 的相似性来度量文档间的相似性。文本处理中最常用的相似性度量方式是余弦距离。M个无序特...原创 2019-07-20 12:12:44 · 2903 阅读 · 1 评论 -
CAS无锁算法
锁(lock)的代价锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切 换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。用户态的锁虽然避免了这些问题,但是 其实它们只是在没有真实的竞争时才有效。Java在JDK1.5之前都是靠synch...原创 2019-07-20 12:18:23 · 136 阅读 · 0 评论 -
红黑树
概述红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,它是在1972 年由RudolfBayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J.Guibas和Robert Sedgewick 修改为如今的"红黑树"。红黑树在进行插入和删除操作时通过特定操作保持二叉查找...原创 2019-07-20 12:16:46 · 257 阅读 · 1 评论