- 博客(71)
- 资源 (5)
- 收藏
- 关注
原创 调用返回风格
构件是对象,对象是抽象数据类型的实例。在抽象数据类型中,数据的表示和它们的相应操作被封装起来,对象的行为体现在其接受和请求的动作。连接件即是对象间交互的方式,对象是通过函数和过程的调用来交互的。过程调用作为交互机制,即充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是通过函数和过程的调用来交互的。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。
2023-05-19 14:00:14 243
原创 软件体系结构风格
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
2023-05-19 10:04:28 267
原创 算法:24点游戏算法
给出4个1-10的数字,通过加减乘除运算,得到数字为24就算胜利,除法指实数除法运算,运算符仅允许出现在两个数字之间,本题对数字选取顺序无要求,但每个数字仅允许使用一次,且需考虑括号运算。此题允许数字重复,如3 3 4 4为合法输入,此输入一共有两个3,但是每个数字只允许使用一次,则运算过程中两个3都被选取并进行对应的计算操作。对于每组案例,输出一行表示能否得到24点,能输出true,不能输出false。读入4个[1,10]的整数,数字允许重复,测试用例保证无异常数字。
2023-05-15 20:38:41 296
原创 算法:火车进站
给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号,火车站只有一个方向进出,同时停靠在火车站的列车中,只有后进站的出站了,先进站的才能出站。进阶:时间复杂度:O(n!) ,空间复杂度:O(n)第一种方案:1进、1出、2进、2出、3进、3出。第二种方案:1进、1出、2进、3进、3出、2出。第三种方案:1进、2进、2出、1出、3进、3出。第四种方案:1进、2进、2出、3进、3出、1出。第五种方案:1进、2进、3进、3出、2出、1出。
2023-05-12 13:30:11 1107
原创 算法:公共子串计算
注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。进阶:时间复杂度: O(n3) ,空间复杂度:O(n)数据范围:字符串长度: 1≤s≤150。输出一个整数,代表最大公共子串的长度。输入两个只包含小写字母的字符串。
2023-05-12 09:08:09 189
原创 算法:参数解析
2.对于用""包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy /s "C:\\program files" "d:\"时,参数仍然是4个,第3个参数应该是字符串C:\\program files,而不是C:\\program,注意输出参数时,需要将""去掉,引号不存在嵌套情况。请编写一个参数解析程序,实现将命令行各个参数解析出来。进阶:时间复杂度:O(n) ,空间复杂度: O(n)输出参数个数,分解后的参数,每个参数都独占一行。参数3:字符串c:\\。1.参数分隔符为空格。
2023-05-12 07:57:24 500
原创 算法:矩阵乘法计算量估算
计算A*B*C有两种顺序:((AB)C)或者(A(BC)),前者需要计算15000次乘法,后者只需要3500次。计算的法则为一个字符串,仅由左右括号和大写字母('A'~'Z')组成,保证括号是匹配的且输入合法!输入多行,先输入要计算乘法的矩阵个数n,每个矩阵的行数,列数,总共2n的数,最后输入要计算的法则。数据范围:矩阵个数:1≤n≤15 ,行列数:1≤rowi,coli≤100 ,A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵。进阶:时间复杂度:O(n) ,空间复杂度:O(n)
2023-05-11 21:10:18 621
原创 查找两个字符串a,b中的最长公共子串
描述查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!数据范围:字符串长度1≤length≤300进阶:时间复杂度: O(n3),空间复杂度: O(n)输入描述:输入两个字符串输出描述:返回重复出现的字符示例1输入:abcdefghijklmnopabcsafjklmnopqrstuvw输出:jklmnop
2023-05-10 15:16:04 180
原创 从单向链表中删除指定值的节点
输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。数据范围:链表长度满足 1≤n≤1000 ,节点中的值满足 0≤val≤10000。删掉节点3,返回的就是2->5->4->1。最后的链表的顺序为 2 7 3 1 5 4。最后一个参数为2,表示要删掉节点为2的值。链表为2->7->3->1->5->4。形成的链表为2->5->3->4->1。链表为2->3->1->5->4。链表为2->3->1->5。4 输入要删除的结点的值。链表为2->3->1。
2023-05-09 13:14:23 480
原创 名字的漂亮度
对于样例lisi,让i的漂亮度为26,l的漂亮度为25,s的漂亮度为24,lisi的漂亮度为25+26+24+26=101.每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。数据范围:输入的名字长度满足 1≤�≤10000 1≤n≤10000。给出多个字符串,计算每个字符串最大可能的“漂亮度”。第一行一个整数N,接下来N行每行一个字符串。每个字符串可能的最大漂亮程度。
2023-05-09 11:09:38 111
原创 算法:迷宫问题
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。入口点为[0,0],既第一格是可以走的路。输入两个整数,分别表示二维数组的行数,列数。再输入相应的数组,其中的1表示墙壁,0表示可以走的路。数据保证有唯一解,不考虑有多解的情况,即迷宫只有一条通道。// 已经存在数据的元素不允许被覆盖,顺序应该是由下往上。数据范围: 2≤n,m≤10 , 输入的内容只包含 0≤val≤1。左上角到右下角的最短路径,格式如样例所示。
2023-05-09 10:34:56 603
原创 算法:称砝码
数据范围:每组输入数据满足 1≤�≤10 1≤n≤10 , 1≤��≤2000 1≤mi≤2000 , 1≤��≤10 1≤xi≤10。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。第三行:x1 x2 x3 .... xn --- 每种砝码对应的数量(范围[1,10])第二行:m1 m2 m3 ... mn --- 每种砝码的重量(范围[1,2000])第一行:n --- 砝码的种数(范围[1,10])可以表示出0,1,2,3,4五种重量。
2023-05-08 13:59:50 272
原创 整数与IP地址间的转换
组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成。每段数字 相对应的二进制数。举例:一个ip地址为10.0.3.193。数据范围:保证输入的是合法的 IP 序列。1 输出转换成10进制的IP地址。2 输入10进制型的IP地址。2 输出转换后的IP地址。
2023-05-07 21:28:20 847
原创 算法:密码截取
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?数据范围:字符串长度满足 1≤�≤2500 1≤n≤2500。输入一个字符串(字符串的长度不超过2500)
2023-05-07 21:04:49 166
原创 找兄弟单词
数据范围:1≤�≤1000 1≤n≤1000 ,输入的字符串长度满足 1≤���(���)≤10 1≤len(str)≤10 , 1≤�<� 1≤k<n。定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。现在给定你 n 个单词,另外再给你一个单词 x ,让你寻找 x 的兄弟单词里,按字典序排列后的第 k 个单词是什么?先输入字典中单词的个数n,再输入n个单词作为字典单词。兄弟单词要求和原来的单词不同。例如: ab 和 ba 是兄弟单词。
2023-05-07 14:57:20 531
原创 字符串排序
描述编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y数据范围:输入的字符串长度满足1≤�≤10001≤n≤1000输入描述:输入字符串输出描述:输出字符串示例1输
2023-05-07 13:32:57 308
原创 数据分类处理
一组输入整数序列I和一组规则整数序列R,I和R序列的第一个整数为序列的个数(个数不包含第一个整数);整数范围为0~(2^31)-1,序列个数不限。
2023-05-07 12:02:10 833 1
原创 算法:合唱队
TK ,若存在i(1≤i≤K) 使得T1<T2<......<Ti−1<Ti 且 Ti>Ti+1>......>TK,则称这K名同学排成了合唱队形。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。N 位同学站成一排,音乐老师要请最少的同学出列,使得剩下的 K 位同学排成合唱队形。通俗来说,能找到一个同学,他的两边的同学身高都依次严格降低的队形就是合唱队形。用例两行数据,第一行是同学的总数 N ,第二行是 N 位同学的身高,以空格隔开。
2023-05-07 09:37:22 673
原创 算法:购物单
满意度是指所购买的每件物品的价格与重要度的乘积的总和,假设设第i件物品的价格为]v[i],重要度为w[i],共选中了k件物品,编号依次为1,j2,...,jk,则满意度为:v[j1]∗w[j1]+v[j2]∗w[j2]+…如果 q=0 ,表示该物品为主件,如果 q>0 ,表示该物品为附件, q 是所属主件的编号)从第 2 行到第 m+1 行,第 j 行给出了编号为 j-1 的物品的基本数据,每行有 3 个非负整数 v p q。第2和第3行的q为5,说明它们都是编号为5的物品的附件;
2023-05-06 14:44:24 310
原创 求int型正整数在内存中存储时1的个数
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。数据范围:保证在 32 位整型数字范围内。这个数转换成2进制后,输出1的个数。输入一个整数(int类型)
2023-05-05 10:18:12 70
原创 明明的随机数
明明生成了�N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。第一行先输入随机整数的个数 N。接下来的 N 行每行输入一个整数,代表明明生成的随机数。具体格式可以参考下面的"示例"。数据范围: 1≤�≤1000 1≤n≤1000 ,输入的数字大小满足 1≤���≤500 1≤val≤500。输出多行,表示输入数据处理后的结果。
2023-05-05 07:47:16 66
原创 算法:放苹果
注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?数据范围: 0≤m≤10 ,1≤n≤10。
2023-05-05 07:43:48 56
原创 高精度整数加法
输入两个用字符串 str 表示的整数,求它们所表示的数之和。保证字符串只含有'0'~'9'字符。数据范围: 1≤len(str)≤10000。
2023-05-04 21:31:12 48
原创 表达式求值
数据范围:运算过程中和最终结果均满足 ∣���∣≤231−1 ∣val∣≤231−1 ,即只进行整型运算,确保输入的表达式合法。输入字符串长度不超过 100 ,合法的字符包括 ”+, -, *, /, (, )” , ”0-9”。给定一个字符串描述的算术表达式,计算出结果值。
2023-05-04 19:50:40 86
原创 logback之MDC日志跟踪
添加业务ID:businessId配置日志pattern:logging.pattern.file=${CONSOLE_LOG_PATTERN:%clr(%d{${LOG_DATEFORMAT_PATTERN:yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr([%X{businessId}]){blue} %clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.
2021-10-28 15:49:05 331
原创 kafka再均衡监听器
在为消费者分配新分区或移除旧分区时,可以通过消费者API执行一些应用程序代码,在调用subscribe()方法时传进去一个ConsumerRebalanceListener实例就可以了。public void onPartitionsRevoked(Collection<TopicPartition> partitions)方法会在再均衡开始之前和消费者停止读取消息之后被调用。如果在这里提交偏移量,下一个接管分区的消费者就知道该从哪里读取了。public void onPartiti
2021-08-28 11:15:24 212
原创 kafka配置参考
CPUKafka是I/O密集型而非计算密集型的框架,所以对CPU的需求是各个指标里最宽松的,消耗CPU的点主要在于消息的压缩和解压缩。一个Kafka Broker节点往往要承载许多个Topic Partition并与许多个Producer/Consumer交互,所以并行度(核心/线程数)要比单核性能(频率)更重要。一般来讲单节点8C/16T,主频2GHz以上(按Broadwell架构计)就可以满足小型生产环境,负载比较重的集群可以配到12C/24T甚至16C/32T。注意根据CPU规格的不同,Bro
2021-08-28 11:14:44 785
原创 fastdfs 原理
架构FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Tracker server调度最终由Storage server完成文件上传和下载。Tracker server作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务。可以将tracker称为追踪服务器或调度服务器。Storage server作用是文件存储,客.
2021-08-28 11:13:58 318
原创 nacos配置
机器基本配置选择Cassandra的性能使用可以随着机器的硬件配置,以及集群的节点数的横向和纵向的升级而相应的有所提升。CPUCassandra内部会有很多地方使用多线程进行处理,一般配置里面对于读写而言,写操作是CPU bound,所以如果系统的写操作会相对多一点,对cpu的要求也会相对配置要好一点,一般至少是2c起步,如果是生产环境对写要求更高,相对的cpu核数应该更好。内存Cassandra使用java 语言编写,会用到jvm-on heap内存以及offheap内存,其中jvm预
2021-08-28 11:10:57 2536
原创 跨集群迁移数据
curl -u elastic:vE2UD97euQZMC0XXX -XPOST "http://es-cn-6ja21duh2000c7bnz.public.elasticsearch.aliyuncs.com:9200/_reindex" -H 'Content-Type:application/json' -d '{"conflicts": "proceed","source": {"remote": {"host": "http://39.107.88.21:9200","u
2021-08-28 11:06:37 110
原创 PG sql相关
修改字段alter table lark_user ALTER department_id type varchar(46) USING department_id::varchar(46) [];comment on column lark_user.department_id is '用户所属部门的ID列表';语法备注ALTER TABLE [ ONLY ] name [ * ]action [, ... ]ALTER TABLE [ ONLY ] name [ * ]..
2021-08-28 11:02:34 224
原创 GC调优整理
jdk8 默认GC:Parallel Scavenge + Parallel Old (1.8默认)Parallel Scavenge新生代并行回收器,内存分布使用的复制算法。Parallel Scavenge主要关注的是应用的吞吐量,而其他收集器关注的主要是尽可能的缩短STW(stop the word)的时间。吞度量=t1/(t1+t2)t1运行用户代码的总时间t2运行垃圾收集的总时间比如,虚拟机总共运行了100分钟,其中垃圾收集花掉1分钟,那吞吐量就是99%。Parall.
2021-07-05 15:48:17 182
原创 TCP优化
以下是在/etc/sysctl.conf文件中配置的几个重要内核参数,这几个参数的设置关系到系统性能:net.ipv4.tcp_syncookies#此参数应该设置为1,防止SYN Flood。处在SYN_RECV的TCP连接称为半连接,存储在SYN队列。大量SYN_RECV会导致队列溢出,后续请求将被内核直接丢弃,也就是SYN Flood攻击。开启syncookies后,当SYN队列满了后,TCP会通过原地址端口,目的地址端口和时间戳打造一个特别的Sequence Number(又叫cookie发
2021-05-27 16:52:33 296
原创 nacos部署
GIT地址https://github.com/alibaba/nacos数据库/******************************************/ /* 数据库全名 = nacos_config */ /* 表名称 = config_info */ /******************************************/ CREATE TABLE `config_info` ( `id` bigint(20) NOT NULL AUTO
2021-05-06 16:21:14 524
原创 maven 依赖下载顺序
local_repo > settings_profile_repo > pom_profile_repo > pom_repositories > settings_mirror > central
2021-04-07 10:41:08 616 1
原创 etcd安装
ETCD_VER=v3.4.15# choose either URLGOOGLE_URL=https://storage.googleapis.com/etcdGITHUB_URL=https://github.com/etcd-io/etcd/releases/downloadDOWNLOAD_URL=${GOOGLE_URL}rm -f /usr/local/etcd/etcd-${ETCD_VER}-linux-amd64.tar.gzrm -rf /usr/local/etcd .
2021-03-22 09:58:05 244
原创 APISIX
openresty CentOS# add the yum repo:wget https://openresty.org/package/centos/openresty.reposudo mv openresty.repo /etc/yum.repos.d/# update the yum index:sudo yum check-updatesudo yum install -y openresty如果你想安装命令行工具resty,那么可以像下面这样安装openrest..
2021-03-21 21:38:10 232
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人