算法
文章平均质量分 71
北漂一族1988
这个作者很懒,什么都没留下…
展开
-
每日一道算法题 16(2023-12-29)
输出字符串中第k个最小ascii码值的字母所在字符串的位置索引,k如果大于字符串长度,则输出最大ascii值的字母所在字符串的位置索引,如果第k个最小ascii码值的字母存在重复,则输出该字母的最小位置索引。输入一个由n个大小写字母组成的字符串,按照Ascii码从小到大的排序规则,查找字符串中第k个最小ascii码值的字母(k>=1),输出该字母所在字符串的位置索引(字符串的第一个字符位置索引为0)第二行输入k,k必须大于0,k可以大于输入字符的长度。第一行输入一个由大小写字母组成的字符串。原创 2024-01-24 15:00:57 · 415 阅读 · 0 评论 -
每日一道算法题 15(2023-12-28)TLV解析Ⅰ
第二层 32 01 00 AE 90 02 00 21 02 30 03 00 AB 32 31 31 02 00 32 33 01 22 CC。1、题目中 value 两个字节的拼接顺序,拼接想法 转进行进制转换时,数据是异常的。//注意是 len2+len1 不是len1+len2。* 第一行 31。原创 2024-01-23 23:00:40 · 485 阅读 · 0 评论 -
每日一道算法题 14(2023-12-22)(按单词下标区间翻转文章内容)
例如输入字符串 “I am a developer.”,区间[0,3]则输出 “developer. a am I”。输入一个英文文章片段,翻转指定区间的单词顺序,标点符号和普通字母一样处理。输入字符串可以在前面或者后面包含多余的空格,但是反转后的不能包含多余空格。如果两个单词见有多余的空格,将反转后单词间的空格减少到只含一个。说明:指定反转区间只有一个单词,或无有效单词则统一输出原字符串。反转后的英文文章片段,所有单词之间以一个半角空格分割进行输出。第二个参数为反转起始单词下标,下标从0开始。原创 2023-12-22 09:00:00 · 357 阅读 · 0 评论 -
每日一道算法题 10(2023-12-18)(找出符合要求的字符串子串)
先确定起始单词word,再接以d开头的且长度最长的单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出worddwordda。先确定起始单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出dwordda。当存在多个首字母相同的单词时,取长度最长的单词,如果长度也相等,则取字典序最小的单词;现给定一组全部由小写字母组成单词数组,并指定其中的一个单词作为起始单词,进行单词接龙,接下来的N行,分别表示单词数组中的单词。原创 2023-12-22 17:10:17 · 451 阅读 · 0 评论 -
每日一道算法题 7(2023-12-15)(一种字符串压缩表示的解压)
3 String 类的toLowerCase,toUpperCase方法的使用。反之,如果它含有的大写字母比小写字母多,则将这个子串的所有小写字母转换为大写字母;对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;给定一个非空字符串S,其被N个'-'分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用'-',分隔。输入为两行,第一行为参数K,第二行为字符串S。1 StringJoiner 类的使用。原创 2023-12-15 14:18:16 · 378 阅读 · 0 评论 -
每日一道算法题 6(2023-12-14)(字符串分割(二))
有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如字符串aaabbccccd 经过压缩变成字符串 3abb4cd 请您编写解压函数,根据输入的字符串, 判断其是否为合法压缩过的字符串 若输入合法则输出解压缩后的字符串 否则输出字符串!error来报告错误。若判断输入为合法的经过压缩后的字符串 则输出压缩前的字符串 若输入不合法 则输出字符串!4d扩展为dddd,故解压后的字符串为ddddff.//只有数字,与小写字符。原创 2023-12-14 22:00:42 · 452 阅读 · 0 评论 -
一维数组转二叉树结构输出(2024-01-22)
1、一维数组自动生成二叉树,其它的文章基本都是生成二维数组,结构图形输出的很少。2、结构输出有“”/“\” 便于识别。//当前节点已经完成,从队列移出,//TreeNode 赋值给数组。//左子结点加入队列。* @param root 根节点。* @param i 第几行。* @param l 左节点。* @param r 右节点。//当前节点 没有左子结点。//当前节点 没有又子结点。* @param ans 数组。//数组赋值 / \。//数组为空直接返回。原创 2024-01-23 09:36:51 · 623 阅读 · 0 评论 -
堆排序,计数排序,桶排序,基数排序(2024-01-23)
堆排序,计数排序,桶排序,基数排序原创 2024-01-23 09:27:19 · 473 阅读 · 0 评论 -
冒泡排序,选择排序,插入排序(2023-12-24)
选择排序可以看做是冒泡排序的改进,是表现最稳定的排序算法之一,因为无论序列是怎样的都要比较n(n-1)/2次,所以时间复杂度都是O(n2),* 如果序列是完全有序的,插入排序只要比较n次,无需移动时间复杂度为O(n),如果序列是逆序的,插入排序要比较O(n²)和移动O(n²)* ,所以平均复杂度为O(n²),最好为O(n),最坏为O(n²),排序过程中只要一个辅助空间,所以空间复杂度O(1)。* 最佳情况:T(n) = O(n) 最坏情况:T(n) = O(n2) 平均情况:T(n) = O(n2)原创 2024-01-15 17:59:39 · 488 阅读 · 0 评论 -
快速排序、归并排序、希尔排序(2023-12-25)
和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。* 将原始序列从中间分为左、右两个子序列,此时序列数为2 将左序列和右序列再分别从中间分为左、右两个子序列,此时序列数为4。* 最佳情况:T(n) = O(n) 最差情况:T(n) = O(nlogn) 平均情况:T(n) = O(nlogn)* 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。原创 2024-01-15 18:10:40 · 815 阅读 · 0 评论 -
每日一道算法题 13(2023-12-21)(英文输入法)
输入两行 首行输入一段由英文单词word和标点构成的语句str 接下来一行为一个英文单词前缀pre 0 < word.length()原创 2023-12-21 08:45:00 · 652 阅读 · 0 评论 -
每日一道算法题 12(2023-12-20)(字符串加密)
给出原文字符串str,通过对字符串的每个字母进行改变来实现加密,加密方式是在每一个字母str[i]偏移特定数组元素a[i]的量。例如:原文abcde加密后bdgkr,其中偏移量分别是1,2,4,7,13。当i>=3时,数组元素a[i]=a[i-1]+a[i-2]+a[i-3]。公式为 (s[i]+a[i]-97)%26+97 计算出还是小写字符。数组a的前三位已经赋值:a[0]=1,a[1]=2,a[2]=4,//为字符串的每一个字符添加a[i]偏移量。a[i] 的偏移量超过26后,就不是字符串。原创 2023-12-20 09:00:00 · 419 阅读 · 0 评论 -
每日一道算法题 9(2023-12-17)(单词接龙)
输入一个字符串,"-"分隔数值,如按k值反转(中信银行在线面试题)//要交换的下标,没有超过数组长度。输入 3 1-2-3-4-5-6-7-8-9-10。输入为两行,第一行为参数K,第二行为字符串S。输出 3-2-1-6-5-4-9-8-7-10。1 StringJoiner 类的使用。输入 2 1-2-3-4-5。2 stream 流的使用规则。输出 2-1-4-3-5。原创 2023-12-19 09:34:26 · 366 阅读 · 0 评论 -
每日一道算法题 8(2023-12-16)(矩阵最大值)
1,0,1,1,1]向右整体循环移动两位[1,1,1,0,1][1,0,1,1,1]向左整体循环移动两位[1,1,1,1,0]数据的第一行为正整数,记录了N的大小,0 < N原创 2023-12-16 07:54:23 · 604 阅读 · 0 评论 -
每日一道算法题 5(2023-12-13)(求满足条件的最长子串的长度)
/这里只是为了第一个字母或者全都是字母时,不进行计算maxLen。//有一个以上字母,删除第一个,如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。1、只包含1个字母(a-z,A~Z),其余必须是数字;//解法2,这个可以记录最长子串。//没有字母,纯数字。2、字母可以在子串中的任意位置;字符串(只包含字母和数字)原创 2023-12-14 17:34:44 · 568 阅读 · 0 评论 -
每日一道算法题 4(2023-12-12)(求字符串中所有整数的最小和)
1、BigInteger,Big相关类的使用 .add后会生成一个新的Big类,需要 sum=sum.add()后才能获取算法结果。2)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023。2)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023。1) 正整数 一个或者多个0-9组成,如 0 2 3 002 102。字符串 s,只包含 a-z A-Z + -;字符串 s,只包含 a-z A-Z + -;原创 2023-12-12 10:33:17 · 439 阅读 · 0 评论 -
每日一道算法题 3(2023-12-11)(VLAN资源池)
说明: 原VLAN资源池中有VLAN 5、6、7、8、9、10、15、18、20、21、30,从资源池中移除15后,资源池中剩下的VLAN为 5、6、7、8、9、10、18、20、21、30,按照题目描述格式并升序后的结果为5-10,18,20-21,30。如果申请的VLAN不在原VLAN资源池内,输出原VLAN资源池升序排序后的字符串即可。说明: 原VLAN资源池中有VLAN 1、2、3、4、5,从资源池中移除2后,剩下VLAN 1、3、4、5,按照题目描述格式并升序后的结果为1,3-5。原创 2023-12-10 17:16:38 · 1139 阅读 · 0 评论 -
每日一道算法题 2 (IPv4地址转换成整数)
1 Integer 对象有将整数类型转换为 2进制的toBinaryString(),8进制 toOctalString(),16进制的toHexString()方法 ,转换结果是字符串。比如128转换为16进制 为80,0,转换为16进制为0,备注: 输入不能确保是合法的 IPv4 地址, 需要对非法 IPv4(空串,含有 IP 地址中不存在的字符, 非合法的#分十进制,十进制整数不在合法区间内)进行识别,返回特定错误。本题我理解有限,ip验证的部分没有问题,但是转换为32位整数的结果我是一直没想明白。原创 2023-12-10 15:09:53 · 933 阅读 · 0 评论 -
每日一道算法题 1 (敏感字段加密)
3、可以通过两个双引号""来标识包含下划线_的命令字或空命令字(仅包含两个双引号的命令字),双引号不会在命令字内部出现。3、可以通过两个双引号""来标识包含下划线_的命令字或空命令字(仅包含两个双引号的命令字),双引号不会在命令字内部出现。1、字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号。请对指定索引的敏感字段进行加密,替换为******(6个*),请对指定索引的敏感字段进行加密,替换为******(6个*),如果无法找到指定索引的命令字,输出字符串ERROR。原创 2023-12-09 20:37:40 · 2587 阅读 · 1 评论