0%

第n-i与第i交换。实质上数字倒置。

img)点击并拖拽以移动

1
2
3
4
5
6
7
8
9
10
public static void SceNum(int num)
{
int result = 0;
while (num > 0)
{
result = result * 10 + (num + 5) % 10;
num /= 10;
}
Console.Write(result);
}

思路:左右分开查找并替换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public void PutOddToLeft(int[] arr) {
if (arr.Length <= 0)
return;

if (arr.Length == 1)
return;

int l = 0;
int r = arr.Length - 1;
int tmp;

while(l < r) {
while(arr[l] % 2 == 1 && l < r) {
l++;
}

while (arr[r] % 2 == 0 && r > l) {
r--;
}

if (l >= r)
break;

tmp = arr[l];
arr[l] = arr[r];
arr[r] = tmp;
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

public class HHTimeRecorder
{
private DateTime beginTime;
public void Begin()
{
beginTime = DateTime.Now;
}

public long End()
{
var ret = DateTime.Now - beginTime;
return ret.Ticks / 10000;
}

public void End(string prefix)
{
var costTime = End();
HHLogger.DEBUG(prefix, "cost time", costTime, "ms");
}
}

派生类构造函数执行的次序

  1. 调用基类构造函数,调用顺序按照它们 被继承时声明的顺序 (从左到右);

  2. 调用内嵌成员对象的构造函数,调用顺序按照它们在类中声明的顺序;

  3. 派生类自己构造函数体中的内容。

阅读全文 »

简介

了解FSM之前需要了解一下状态机

FSM是状态机的一种实现方式,它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字。

原理

发生事件(event)后,根据当前状态(cur_state) ,决定执行的动作(action),并设置下一个状态号(nxt_state)。

阅读全文 »

莫名开启的讲述人功能

快捷键开启 ctr + window + Enter

简介

状态机:描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的模型。

用来表示有限多个状态以及在这些状态(State)之间转移(Transition)和动作(Action)的数学模型。

阅读全文 »

时间复杂度,空间复杂度和稳定性

时间复杂度

指的是算法执行语句的次数(取最多次数的那个语句来表示)
在这里插入图片描述
a^x^ =N(a>0,且a≠1) ==> x=logaN
注: Hash的查找的时间复杂度是1,原因“key-value键值对”,离散的

阅读全文 »

目的

为了解决代码到处存在倒计时,每次进行计时的时候,都要一向上传递Update方法。还有就是为了解决游戏中定时任务的触发问题

实现

设计了一个计时任务单元Event,来存放所需要触发的回调事件和属性

设计了一个计时管理Timetask来处理任务单元

阅读全文 »