数据结构+算法=程序
程序+设计模式=框架

0%

NetTask

NetTask是一款基于.net core3.0开发的的通用任务管理系统,将任务逻辑和任务调度彻底分离,并可通过Web界面远程监控和管理任务。
.Net Core 3.0可回收程序集加载上下文AssemblyLoadContext新增了Unload方法,真正实现了程序集的热插拔。

阅读全文 »

先从一个故事说起,话说酒吧里有一男一女,女人提议玩一个游戏,规则如下:
2人各出一枚硬币,如果2个硬币都是正面则男人赢3块钱,如果都是反面则男人赢1块钱,如果是一正一反则女人赢2块钱。
男人心想,假如一个硬币的正面或反面的概率是1/2,那么就有1/4的概率赢3块钱、1/4的概率赢1块钱,还有1/2的概率会输2块钱,赢钱和输钱的概率差不多,运气好点说不定还能赚,于是欣然答应了。
结果玩了一段时间,男人发现自己一直在输钱,这里面是有什么猫腻吗?

阅读全文 »

问题

给你一个 m * n 的矩阵 mat 和一个整数 K ,请你返回一个矩阵 answer ,其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和:

  • i - K <= r <= i + K, j - K <= c <= j + K
  • (r, c) 在矩阵内。

示例1

输入:mat = [[1,2,3],[4,5,6],[7,8,9]], K = 1
输出:[[12,21,16],[27,45,33],[24,39,28]]

示例2

输入:mat = [[1,2,3],[4,5,6],[7,8,9]], K = 2
输出:[[45,45,45],[45,45,45],[45,45,45]]

阅读全文 »

前言

在传统程序中,是通过编码定义好规则,为程序提供一个输入,程序通过规则产生输出,如果一个程序只是枚举所有的输入,来产生相应的输出,那可能根本算不上“智能”,因为未知的输入太多,而且也不现实,比如围棋的棋谱就是千变万化的。
对于AI(人工智能)技术来说,恰恰相反,是通过已知的输入和输出,来生成规则,程序通过大量样本数据的训练,使之越来越“明白”这个规则,从而能够预测未知输入的结果,这就是所谓的“监督学习”。

阅读全文 »

问题

亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。
游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。
亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。
假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回 true ,当李赢得比赛时返回 false 。

示例

输入:[5,3,4,5]
输出:true
解释:
亚历克斯先开始,只能拿前 5 颗或后 5 颗石子 。
假设他取了前 5 颗,这一行就变成了 [3,4,5] 。
如果李拿走前 3 颗,那么剩下的是 [4,5],亚历克斯拿走后 5 颗赢得 10 分。
如果李拿走后 5 颗,那么剩下的是 [3,4],亚历克斯拿走后 4 颗赢得 9 分。
这表明,取前 5 颗石子对亚历克斯来说是一个胜利的举动,所以我们返回 true 。

阅读全文 »

遍历一棵二叉树,主要分为前序遍历、中序遍历和后序遍历三种方式,只是遍历的顺序不同

  • 前序遍历: 根节点->左节点->右节点
  • 中序遍历: 左节点->根节点->右节点
  • 后序遍历: 左节点->右节点->根节点
阅读全文 »