自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(170)
  • 收藏
  • 关注

原创 [374] 猜数字大小

【代码】[374] 猜数字大小。

2024-08-21 15:56:51 106

原创 [349] 两个数组的交集

【代码】[349] 两个数组的交集。

2024-08-21 15:30:29 100

原创 [303] 区域和检索 - 数组不可变

【代码】[303] 区域和检索 - 数组不可变。

2024-08-20 20:32:47 108

原创 [290] 单词规律

【代码】[290] 单词规律。

2024-08-20 19:38:36 86

原创 [257] 二叉树的所有路径

2024-08-20 16:20:23 629

原创 [228] 汇总区间

如果不是一个区间,只是一个数字 x,则这个数字在nums中,不存在 x - 1, 或 x + 1。如果是一个区间,则区间的两头中间包含的所有数字都在nums中,包含边界。理解题意就好做了 ^ ^列表中的每个区间范围。

2024-08-20 12:09:24 180

原创 [226] 翻转二叉树

【代码】[226] 翻转二叉树。

2024-08-19 21:45:45 97

原创 [225] 用队列实现栈

【代码】[225] 用队列实现栈。

2024-08-19 15:22:16 496

原创 [222] 完全二叉树的节点个数

【代码】[222] 完全二叉树的节点个数。

2024-08-19 14:44:21 82

原创 [219] 存在重复元素 II

【代码】[219] 存在重复元素 II。

2024-08-19 14:07:06 177

原创 [202] 快乐数

【代码】[202] 快乐数。

2024-08-16 16:06:25 419

原创 171.Excel 表列序号

【代码】171.Excel 表列序号。

2024-08-16 15:31:44 72

原创 Linux Tcp 连接 状态 检测 处理

【代码】Linux Tcp 连接 状态 检测 处理。

2024-08-06 20:41:55 337

原创 紫龙游戏服务器面试

9.两个机器同时Tcp连接对方,是同一条链接吗。

2024-07-22 19:28:34 303

原创 Linux 环境.Net程序堆栈查询

【代码】Linux 环境.Net程序堆栈查询。

2024-06-17 16:22:17 328

原创 C#中数组ProtoBuf使用问题

使用 C# 类库 Google.Protobuf 包,进行协议定义,当给数组属性赋值默认值时,出现反序列化以后,数组长度翻倍,多的一部分在最前面,而且都是数组元素的默认值。这个bug如果没有自己观察会以为是逻辑代码的问题,解决办法就是,在定义数组时,不给默认值,用的时候再new。

2024-06-14 15:01:36 362

原创 Ubuntu 安装 Proto 问题

Linux安装proto库问题

2024-05-22 23:11:52 211

原创 C# Mongo 驱动 MongoDB.Bson.BsonSerializationException: Unknown discriminator value

【代码】C# Mongo 驱动 MongoDB.Bson.BsonSerializationException: Unknown discriminator value。

2024-01-12 17:20:27 977

原创 C# typeof 与 示例的GetType()

typeof 输出这个示例的直接 类型 IBagItem, 也就是指向示例的类型。GetType() 源类型。

2024-01-11 20:18:57 586

原创 背包系统设计

这个系统算是所有系统的基础系统,不管是奖励的发放、还是其它业务,都是通过背包来工作的,但是不建议所有系统跟背包进行强关联,否则系统后期会很难维护,就像我们前期为了省事,考虑可能出现的各种交易,将所有的系统DbId跟背包关联,导致后期背包中存在很多无用的数据,而且一个数据存储在两个地方,本身就是违背设计的,但是由于各种原因,我们还是做了,希望大家做的时候想清楚,当然如果遇到一个喜欢应付的合作对象,你会发现,不管你怎样说他总有理由 ^ ^理论上,我们希望,减数据的时候先减 同itemId中 数量最小的;

2023-12-18 20:58:10 220

原创 好友系统设计

申请添加好友的人,动态的修改好友的数据,当然好友在线的话,可以给好友发一条消息,好友在线修改添加,如果离线,我们采取的方案是直接给这个好友添加数据(注意理论上这里会出现,玩家A修改玩家B的数据,玩家B此时刚好上线获取,发现拿的是老数据,导致数据错误),不过这个问题没有被提出来,是后面我自己分析出来了,后面跟做的人说,他感觉这个问题先这样,我相信大家都碰到过这种情况 ^ ^。这种设置可以只修改自己的数据,黑名单可以直接在表里体现,申请状态也可以直接在表里体现,可结合业务情况设计“好友申请”、“黑名单”功能。

2023-12-18 19:48:16 200

原创 红点系统设计

另外,玩家上线后会获取很多数据,只是提示作用,获取完整的数据效率低,大部分情况没有实际意义,使用红点可以很好的解决这个问题,玩家上线时只推送一个数组,表示各个系统的红点状况,如果玩家需要深入查看,则获取详细的信息。一般来说项目前期,基本不会关注红点提示问题,后期提了需求后,做了一部分发现,每做一个模块都需要添加一个协议,不如设计一个系统统一管理这个问题;

2023-12-15 20:56:11 96

原创 奖励Reward系统设计

奖励Reward系统设计

2023-12-15 20:45:22 147

原创 系统邮件、个人邮件系统

这个基本和系统邮件类似,就是奖励的获取建议,建议使用一个至少为byte的字段GotSign表示,如果后期存在 部分领取的情况,将这个字段分成几位,每一位代表奖励的领取情况即可。2.尽量不存储重复信息,比如同步的系统邮件,如果内容固定,个人邮件只需根据MailId即可获取邮件的内容,数据库不用再存储相关的内容字段,当然也要结合实际业务。1.直接获取全部的邮件内容,邮件数目多的时候会比较费,如果可以合理的控制邮件的过期时间,这个方案是可以的。所有人都可以接收的邮件,一般系统发放后,玩家登录时拉取。

2023-12-15 15:28:23 93

原创 条件系统、任务系统设计

这个主要是设置相关的业务触发类型,不同的业务设置不同的值,这里建议将类型至少设置为ushort, 太小后期会出问题 ^ ^这里建议将状态的枚举值设置的大一些,方便后期插入一些特殊的状态,要不然需要改许多已经写好的东西,踩过坑的都懂的为啥 ^ ^一般来说,当任务结束,也就是相应的条件完成,比如常见的主线、支线、每日、每周、委托、成就任务等。激活任务的条件id列表,满足则任务进入 Active 状态,否则 处于 Init 状态。完成或改变特定的条件,触发任务状态的改变,一般由各个系统触发;

2023-12-14 21:00:19 230

原创 设计一个多人在线的匹配系统

实际上,会有很大的可能,玩家会加入匹配再退出,当然写完功能我们也会跑测试,假设我们加入匹配,但是突然取消匹配,但程序已经匹到玩家,这个时候我们就需要处理很多状态,最简单就是,搜索清理所有数据,但这个会把所有任务暂停下来,可想而知,代价是很大的,当上百万人同时取消;3.在每次开始 主流程时 可以记录一个状态,当中间有玩家退出时,改变这个 状态,只有在 主流程开始到结束,这个中间 所记录的状态 依然为每次开始时标记的状态,才清理过期数据,如下代码。1.进入下一个流程,匹配队友,或匹配对手。

2023-12-14 17:28:04 482

原创 C# GC

参考。

2023-12-13 17:52:20 50

原创 数字越界分析

针对int 到 ushort的转换。

2023-12-11 20:24:22 51

原创 Linux查找文件内容

【代码】Linux查找文件内容。

2023-11-24 11:23:47 147

原创 Mysql字符串类型编码问题

A:调查后发现在数据库中使用的 account 编码为 utf8mb4_unicode_ci,而这种其实是不区分大小写的,后面我们根据情况,将编码换为 utf8mb4_bin就可以了。Q: 数据库 Redis 出现 字符比较不一致问题。

2023-11-17 10:59:12 136

原创 Linux Dotnet 程序堆栈监控

【代码】Linux Dotnet 程序堆栈监控。

2023-11-02 15:26:20 191

原创 C#细节问题

【代码】C#细节问题。

2023-11-01 10:34:21 135

原创 C# DateTime类型 直接使用Proto、Bson 问题

默认这里的时区为UTC、DateTimeOffset 为0,参考下面文档可找到;这就会导致设置的时区信息丢失,如下eg.// json08:00",// proto, 没有带时间戳// bson由于DateTime时C#的内建类型,不能使用 RuntimeTypeModel.Default.Add() 中添加查看源码可知,当;时序列化时会带时区。

2023-10-31 16:29:13 280

原创 Linux查找大文件

【代码】Linux查找大文件。

2023-10-25 14:40:41 114

原创 背包系统设计-获取数据量大问题

由于业务需要,灵活的,交易等原因,目前我们将很多不属于背包的功能放入背包,起初感觉这样省了不少事情,很多东西的获取直接走背包就好,不用添加任何协议。

2023-10-21 10:52:43 170

原创 2419. 按位与最大的最长子数组

【代码】2419. 按位与最大的最长子数组。

2023-09-24 18:31:04 101

原创 91. 解码方法

递归、动态规划

2023-08-20 18:49:35 1756 1

原创 权重设计介绍

经常会有许多活动、或则任务、当用户完成后,可以获得相关的奖励,当然可以是提前定死的几个、但如果想要 产出不同的 奖励的话,给每个物件配置相关的权重,就可以实现。之前在阿里的 负载均衡 比赛中,就有这个算法,RocketMQ 中包含多种负载算法,其中 权重 算法就属于其中一种,也是最实用的一种。weight 属于 (10,30] => index = 1。weight 属于 (30,40] => index = 2。weight 属于 (0,10] => index = 0。

2023-08-14 20:56:57 208

原创 347. 前 K 个高频元素

2.放入优先队列(最大堆)1.哈希记录元素出现次数。3.依次出队获取结果。

2023-08-13 18:08:30 70

原创 7022. 限制条件下元素之间的最小绝对差

目前看,最好的办法时,可以改写SortedList,提供一个获取边界的方法,源码中其实已经包含类似的方法(FindNode),只是没有提供外界使用。参考:借助一个有序集合保存可匹配的有序元素集合,再根据当前元素,快速找到这个元素在这个集合中的左右边界。这里使用 GetViewBetween 获取部分的节点遍历,但再最后两个测试数据中超时。问题:这里 查找 边界元素导致超时,需要优化。

2023-08-13 17:29:28 257

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除